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
mayank: 2014-10-23 09:09:43

Negative Modulus :'( .

do_do: 2014-09-19 23:57:18

finally accepted using matrix expo. and modular arith. :)

do_do: 2014-09-19 22:58:32

can someone please give me more test cases

a7b: 2014-08-24 08:32:01

Can somebody tell me why I'm getting a wrong answer?
http://ideone.com/cXF0dx

sobriquet: 2014-07-03 14:22:05

After this try FIBTWIST.

Archit Jain: 2014-07-03 09:49:39

nice problem

Last edit: 2014-07-03 09:49:53
excursionist: 2014-06-13 00:10:15

nice problem....taught many things :o
Got ac in first attemp :)

Sharprocks: 2014-06-07 22:00:48

Nice question
A single question taught 2 things :-)
Especially modular arithmetic :P

saanc: 2014-05-19 06:41:42

can't believe that it is accepted in 1st go.. yepppeeeeeeeeeeeeeeee

sarelfeniel: 2014-04-22 06:07:29

Great problem! I am content with 0.02 but I highly recommend reading the forum thread by Rafael Perrella. I guarantee you will learn something. Definitely never knew about that secret of the Fibonacci numbers.

@Francky, you have some awesome problems relating to Fibonacci and other series!
--ans(Francky)--> Thanks for your comment.

@Francky, no problem! My background in discrete mathematics is rather weak so it's nice to able to explore that area in more detail.

Last edit: 2014-04-23 07:52:02

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