manhattan

Time limit: 0.05s Memory limit: 256MB Input: manhattan.in Output: manhattan.out

În primul cadran al sistemului cartezian se definește o zonă notată cu Z(x, y, u, v) , ca o mulțime de puncte laticeale ce aparțin unui dreptunghi definit prin două puncte diagonal opuse (x, y) și (u, v) cu x ≤ u și y ≤ v . În caz particular o zonă poate să conțină punctele de pe un segment când x = u sau y = v. De asemenea o zonă poate fi formată dintr-un singur punct când x = u și y = v.

Un traseu dintre două puncte laticeale se definește ca un număr minim de segmente de lungime 1 orizontale sau verticale, ce unesc cele două puncte.

Cerință

Cunoscând două zone Z1(a, b, c, d) și Z2(e, f, g, h) ce nu se intersectează în niciun punct, să se calculeze numărul traseelor distincte modulo 666013 care pornesc din zona Z1 și se termină în zona Z2.

Exemplu

Pentru zonele Z1(1, 1, 1, 2) și Z2(2, 2, 3, 2) avem 7 trasee distincte.

Date de intrare

Fișierul de intrare manhattan.in conține pe prima linie opt numere naturale a, b, c, d, e, f, g, h cu semnificațiile de mai sus.

Date de ieșire

Fișierul manhattan.out va conține pe prima linie numărul traseelor distincte modulo 666013.

Restricţii şi precizări

  • Coordonatele zonelor sunt numere naturale mai mici sau egale cu 100 000 .
  • Pentru teste în valoare de 10 puncte coordonatele zonelor sunt mai mici sau egale cu 30.
  • Pentru teste în valoare de 30 puncte coordonatele zonelor sunt mai mici sau egale cu 300.
  • Pentru teste în valoare de 50 puncte coordonatele zonelor sunt mai mici sau egale cu 1 000.
  • Pentru teste în valoare de 50 de puncte proiecţiile pe axele Ox şi Oy ale zonelor sunt disjuncte.

Exemple

manhattan.in

1 1 1 2 2 2 3 2 

manhattan.out

7

manhattan.in

1 1 2 2 2 3 3 4 

manhattan.out

53 

manhattan.in

8 4 13 7 2 3 6 8 

manhattan.out

44702 

manhattan.in

80 40 130 70 20 30 60 80

manhattan.out

145267 

Explicații

Pentru primul exemplu: studiați exemplul de mai sus
Pentru al doilea exemplu: numărul traseelor distincte este 53
Pentru al treilea exemplu: numărul traseelor distincte modulo 666013 este 44702
Pentru ultimul exemplu: numărul traseelor distincte modulo 666013 este 145267

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