## 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

 < Previous 1 2 3 4 5 6 7 8 9 10 11 Next > xom__b: 2019-10-26 11:03:38 use (a%mod -b%mod +mod)%mod) instead of (a-b)%mod importme: 2019-09-25 20:42:35 The case of negative modulos is interesting.... violet360: 2019-09-17 18:58:23 normal iteration won't work, will obviously give TLE use matrix exponentiation(O(log(n)) and use modulo cleverly, good luck :) Last edit: 2019-09-17 18:59:07 prashantpx_1: 2019-07-21 21:34:22 Take Care of Data Type...! Got 2 WA for using int and long int. ramini1996: 2019-07-06 11:20:32 sum(m) - sum(n-1) can be negative because sum(m) & sum(n-1) are not real answers but instead (real answer)%MOD and there is a possibility that sum(n-1) will be greater than sum(m). So, do ((sum(m)-sum(n-1)%MOD)%MOD which will handle both +ve and -ve numbers. Learnt Matrix Exponentiation because of this !!! code_breaker11: 2019-06-17 22:29:16 At last...was fed up with rte. sng_shivang: 2019-06-07 18:59:27 Negative cases are possible so beware of that. toolatetostart: 2019-05-28 15:14:26 can be done using partial sum no matrux expo. needed crackeree: 2019-05-02 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<