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
14mandeep: 2015-06-23 18:35:23

finally accepted
learnt hell lot of things

Master_Card: 2015-06-23 11:19:51

my 150th :)
Good question!!

r0bo_dart: 2015-06-22 18:13:46

My LOL moment.. loaded 2 times the old code while tweaking the new one. GOT WA 2-3 times i guess :P ... #BEWARE
Hint: Tweak your O(logn) code as @Arjun says. Thanks to you. @Arjun.

eagle_19: 2015-06-13 14:30:59

thanks @Arjun, I ignored the negative mod. Finally submitted. :')

Arjun Verma: 2015-06-12 15:13:51

1)mod operation on matrix multiplication .
2)take care for mod of a negative number
3)use long long .

eagle_19: 2015-06-09 17:23:26

I am getting WA after submitting, but on ideone it's giving the desired output.
I've used Matrix method of solving and long int.

Surya Sekhar Mondal: 2015-06-06 21:41:31

use long long , cost me 3 WAs

priyank: 2015-06-03 13:32:33

use modulus while matrix multiplication and at final answer and take care of neg modulus too :)

Aman Agarwal: 2015-06-03 13:26:13

AC in one go..
learned a new way to calculate fibonacci series and fibonacci sum

kartikay singh: 2015-05-21 13:34:16

NEGATIVE MODULUS COST ME 2WA
FINAlly AC :D


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