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

hide comments
rohansaraf033: 2017-12-24 21:40:59

Learnt matrix expo:
but not tried with f(n+2)-1 :)

chetan4060: 2017-12-19 13:08:46

AC in one go:-)

sandeep_123: 2017-12-14 21:46:06

Matrix exponentiation and f(1)+f(2)+f(3)+... + f(n) = f(n+2)-1 did this :D !!

82nd AC

sirjan13: 2017-10-08 19:06:09

Matrix Expo :)

babur: 2017-08-23 14:38:43

AC after 1 wa....take care of negative modulus..

swarup03: 2017-07-14 08:55:24

Ac in one go :)
Didn't use Matrix Exponention, Dijkstra's formula was good enough.
And yes negative mod must be taken into account. Thanks @sagnik_66 for the hint

sandeep_4141: 2017-06-23 10:31:35

learn something new !! Matrix exponentiation !!
care about mod !!

anurag44: 2017-06-14 22:46:36

use long long !! Cost me 3WA's

rakcode1998: 2017-06-11 14:07:35

Why will it ever be negative? @sagnik_66

Last edit: 2017-06-11 14:07:57
sagnik_66: 2017-06-09 18:23:45

Take care about the negative answers. Just add 1000000007.
Matrix Exponentiation gives answer in 0.0 secs


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