Submit | All submissions | Best solutions | Back to list |
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
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 |
hide comments
|
||||||||||||||
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 !!! |
||||||||||||||
2019-06-17 22:29:16
At last...was fed up with rte. |
||||||||||||||
2019-06-07 18:59:27
Negative cases are possible so beware of that. |
||||||||||||||
2019-05-28 15:14:26
can be done using partial sum no matrux expo. needed |
||||||||||||||
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. |
||||||||||||||
2018-12-10 20:50:22
I got segmentation fault, please help! |
||||||||||||||
2018-10-18 16:20:26
use this to print answers: cout<<(fibonacci(b+2)-fibonacci(a+1)+mod)%mod<<endl; ensures positive results |
||||||||||||||
2018-09-08 11:24:32
negative modulus case was very tricky |
||||||||||||||
2018-09-03 06:30:53
Matrix Exponention Modular Arithematic |
||||||||||||||
2018-03-22 22:20:06
I've learnt matrix exponentiation because of this question |