Cais

Time limit: 2s Memory limit: 256MB Input: cais.in Output: cais.out

Cerință

Cum este minunata zi de Sâmbătă, Cais decide să meargă la restaurantul Burgeri și Suc, unde este o oferta de tip All you can eat. El are lângă el două locuri unde poate pune farfuriile cu mâncare în teancuri (A și B). Cais știe că pe bandă vor veni NN preparate, cel cu indexul ii venind la secunda s[i]s[i], iar acesta va alege unul dintre cele două teancuri și va plasa farfuria în vârfului acestuia. La momentul t[i]t[i], Cais va dori să mănânce preparatul din farfuria ii și o va da jos din vârful teancului. El nu poate să mănânce un preparat decât dacă acesta este plasat în vârful unui teanc la momentul ales. Cais, fiind pasionat de combinatorică, se întreabă: "În câte moduri pot să așez farfuriile cu preparate pe cele două teancuri astfel încât să pot să le mănânc pe toate cele NN?"
Deoarece numărul poate fi foarte mare acesta dorește doar restul modulo 1 000 000 0071 \ 000 \ 000 \ 007

Date de intrare

Pe prima linie a fișierului de intrare cais.in se găseste un număr întreg, NN.
Pe linia i+1i + 1 se vor află s[i]s[i] și t[i]t[i] cu semnificația din enunț.

Date de ieșire

Pe prima linie a fișierului de ieșire cais.out se va găși un singur număr întreg, numărul de moduri pentru a așeza farfuriile.

Restricții și precizări

  • 1N1 000 0001 \leq N \leq 1 \ 000 \ 000;
  • șirul s+ts + t formează o permutare a numerelor de la 11 la 2N2N
  • pentru 1212 de puncte N10N \leq 10
  • pentru alte 2121 puncte N2 000N \leq 2 \ 000
  • pentru alte 4848 de puncte N100 000N \leq 100 \ 000

Exemplul 1

cais.in

4
1 3
2 5
4 8
6 7

cais.out

4

Explicație

ABAA, ABAB, BABA, BABB

Exemplul 2

cais.in

3
1 4
2 5
3 6

cais.out

0

Explicație

Nu există soluție. Cais e supărat.

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