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 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
hide comments
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
|
|
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<<endl; " instead of "cout<<fibonacci(b+2)-fibonacci(a+1)<<endl; " got AC. |
|
marethyu1:
2018-12-10 20:50:22
I got segmentation fault, please help! |
|
salman3007:
2018-10-18 16:20:26
use this to print answers:
|
|
masterchef2209:
2018-09-08 11:24:32
negative modulus case was very tricky |
|
mr_robot_rb01:
2018-09-03 06:30:53
Matrix Exponention
|
|
ameyanator:
2018-03-22 22:20:06
I've learnt matrix exponentiation because of this question |
Added by: | David Gómez |
Date: | 2010-12-04 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
Resource: | My Own |