FIBOSUM  Fibonacci Sum
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 nonnegative 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 nonnegative 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 <= 10^{9}
hide comments
gnomegeek:
20200722 23:57:40
f(2 * k) = f(k) * f(k) + f(k  1) * f(k  1)


pratyushmj1:
20200415 07:16:27
How negative values are possible? :).


surajverma_19:
20200118 07:24:54
Finally AC after 9 WA,3TLE


xom__b:
20191026 11:03:38
use (a%mod b%mod +mod)%mod) instead of (ab)%mod


importme:
20190925 20:42:35
The case of negative modulos is interesting.... 

violet360:
20190917 18:58:23
normal iteration won't work, will obviously give TLE


prashantpx_1:
20190721 21:34:22
Take Care of Data Type...! Got 2 WA for using int and long int. 

ramini1996:
20190706 11:20:32
sum(m)  sum(n1) can be negative because sum(m) & sum(n1) are not real answers but instead (real answer)%MOD and there is a possibility that sum(n1) will be greater than sum(m). So, do ((sum(m)sum(n1)%MOD)%MOD which will handle both +ve and ve numbers. Learnt Matrix Exponentiation because of this !!! 

code_breaker11:
20190617 22:29:16
At last...was fed up with rte.


sng_shivang:
20190607 18:59:27
Negative cases are possible so beware of that. 
Added by:  David Gómez 
Date:  20101204 
Time limit:  1s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  My Own 