## FIBOSUM - Fibonacci Sum

no tags

The fibonacci sequence is defined by the following relation:

• F(0) = 0
• F(1) = 1
• F(N) = F(N - 1) + F(N - 2), N >= 2

Your task is very simple. Given two non-negative integers N and M, you have to calculate the sum (F(N) + F(N + 1) + ... + F(M)) mod 1000000007.

### Input

The first line contains an integer T (the number of test cases). Then, T lines follow. Each test case consists of a single line with two non-negative integers N and M.

### Output

For each test case you have to output a single line containing the answer for the task.

### Example

```Input:
3
0 3
3 5
10 19

Output:
4
10
10857```

### Constraints

• T <= 1000
• 0 <= N <= M <= 109 Alexandre Henrique Afonso Campos: 2013-11-11 23:39:41 I have a solution that works for all listed cases here and in the forums previously mentioned here in the comments, including trick cases. Still getting WA. Edit: AC after considering the case that m>n but f(m)%1000000007 < f(n)%1000000007. Last edit: 2013-11-11 23:49:45 Rafael Perrella: 2013-09-11 22:43:50 I don't know any link where it is discussed. But you can start a thread and post the link here, then we can discuss it there. @edit I created the thread. You can easily find it in the forum. Last edit: 2013-09-12 04:13:41 Ouditchya Sinha: 2013-09-11 15:50:43 @Rafael Perrella : Thank you for answering my question & congratulations for solving this problem in 0.00s. :) Yes, I solved this using matrix exponentiation. O(__builtin_popcount(N)) is definitely better than O( log(N) ). Can you please provide any link where this type of algorithm is discussed? Or maybe we can start a thread on forum? @Rafael Perrella : Thank You for sharing your Algorithm!! I'll try to understand it. :) Last edit: 2013-09-12 12:09:37 Rafael Perrella: 2013-09-11 12:05:03 @Mayank 999975531 @Ouditchya Did you calculate F(N) using matrix exponentiation? It's not fast enough to get 0.00, I guess. My algorithm, for a given N, calculates F(N) in O(__builtin_popcount(N)) time, with a really small constant. I wrote this algorithm based on the following property: F(n+k) = F(k)F(n+1) + F(k-1)F(n) YoungMoon KO: 2013-09-07 04:37:52 Excellent problem. I've learned a lot of things about Fibonacci sequence. Refers http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibFormula.html#exact Last edit: 2013-09-07 04:38:51 hiddenman: 2013-09-06 20:40:18 gud 1 learn a lot abt fibo series....... :) Ouditchya Sinha: 2013-08-26 20:04:43 How is 0.00s possible? I can only get 0.01s. Anubhav Balodhi : 2013-08-25 09:33:06 got ac in 3rd try, learnt a lot about fibonacci numbers :D