Wheel

Time limit: 1s Memory limit: 256MB Input: Output:

Într-un laborator se construiesc niște roți din sfoară și cuie.

Pentru un număr natural n4n \geq 4, roata de mărime nn se construiește astfel:

  • se pun nn cuie pe conturul unui cerc, numerotate 1,2,,n1,2,\dots,n (în ordine);
  • se pune un cui în centru, numerotat 00;
  • se leagă cu sfoară fiecare cui de pe cerc cu următorul, adică (1,2),(2,3),,(n1,n),(n,1)(1,2), (2,3), \dots, (n-1,n), (n,1);
  • se leagă cu sfoară centrul 00 de fiecare cui de pe cerc: (0,1),(0,2),,(0,n)(0,1), (0,2), \dots, (0,n).

Un tur închis este o succesiune de cuie distincte (în afară de primul și ultimul, care coincid) astfel încât între cuie consecutive există sfoară. Un tur închis este elementar dacă nu repetă niciun cui, în afară de faptul că se întoarce în punctul de plecare. Un tur elementar trebuie sa conțină cel puțin 33 cuie distincte.

Pentru roata de marime 6 turul 103211 \rightarrow 0 \rightarrow 3 \rightarrow 2 \rightarrow 1 este un tur închis elementar. În desenul de mai sus, muchiile acestui tur sunt marcate cu roșu.

Notăm cu C(n)C(n) numărul de tururi închise elementare din roata de mărime nn.

Considerăm că două tururi închise elementare sunt același tur dacă unul se poate obține din celălalt prin:

  • alegerea unui alt punct de start (rotație), și/sau
  • parcurgerea în sens opus (inversare).

Altfel, tururile sunt distincte.

Turul 103211 \rightarrow 0 \rightarrow 3 \rightarrow 2 \rightarrow 1 este același cu 032100 \rightarrow 3 \rightarrow 2 \rightarrow 1 \rightarrow 0 (același tur, alt start) și cu 123011 \rightarrow 2 \rightarrow 3 \rightarrow 0 \rightarrow 1 (același tur, sens opus).

Cerință

Se dau QQ întrebări. Pentru fiecare întrebare, primiți două numere aa și bb și trebuie să calculați:

(C(a)+C(a+1)++C(b))mod109+7(C(a) + C(a + 1) + \ldots + C(b)) \bmod 10^9 + 7

Date de intrare

Se citesc de la tastatură:

  • pe prima linie numărul QQ;
  • pe următoarele QQ linii câte două numere naturale aa și bb.

Date de ieșire

Se afișează la ecran QQ linii.

Pe linia ii se va afișa răspunsul pentru întrebarea ii, modulo 109+710^9+7.

Restricții

  • 1Q200 0001 \leq Q \leq 200 \ 000;
  • 4ab1 000 000 0004 \leq a \leq b \leq 1 \ 000 \ 000 \ 000;
  • rezultatul se cere modulo M=109+7M = 10^9+7.
# Punctaj Restricții
1 10 4ab8,Q54 \leq a \leq b \leq 8, Q \leq 5
2 20 4ab1 000 000,Q=14 \leq a \leq b \leq 1 \ 000 \ 000, Q = 1
3 20 4ab1 000 0004 \leq a \leq b \leq 1 \ 000 \ 000
4 50 Fără alte restricții

Exemplu

stdin

3
4 4
4 5
6 7

stdout

13
34
74

Explicație

  • Pentru [4,4][4,4] se cere C(4)=13C(4)=13.
  • Pentru [4,5][4,5] se cere C(4)+C(5)=13+21=34C(4)+C(5)=13+21=34.
  • Pentru [6,7][6,7] se cere C(6)+C(7)=31+43=74C(6)+C(7)=31+43=74.

Log in or sign up to be able to send submissions!