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
toolatetostart:
20190528 15:14:26
can be done using partial sum


crackeree:
20190502 11:24:23
This is too much cheap!! :/ "N<=M" has been said in constrain. But further they have set input against the constrain in order to make the problem a bit harder. Negative answers never be possible if N<=M. But using this "cout<<(fibonacci(b+2)fibonacci(a+1)+mod)%mod<<endl; " instead of "cout<<fibonacci(b+2)fibonacci(a+1)<<endl; " got AC. 

marethyu1:
20181210 20:50:22
I got segmentation fault, please help! 

salman3007:
20181018 16:20:26
use this to print answers:


masterchef2209:
20180908 11:24:32
negative modulus case was very tricky 

mr_robot_rb01:
20180903 06:30:53
Matrix Exponention


hazard_10:
20180513 02:42:21
Last edit: 20180530 17:14:07 

ameyanator:
20180322 22:20:06
I've learnt matrix exponentiation because of this question 

hrsh_sengar:
20180314 19:57:24
My 101th :)


m2do:
20180110 19:48:53
Matrix Exponentiation it is! :) 
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 