timpuri-noi

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

Cerință

Se dă un un multigraf neorientat cu nn noduri și mm muchii. Muchia ii unește nodurile uiu_i și viv_i și are asociat un interval [sti,dri][st_i, dr_i]: ea poate fi parcursă doar dacă numărul de muchii parcurse înainte este cuprins între stist_i și dridr_i, inclusiv.

Un drum este un șir de muchii e1,e2,…,eke_1, e_2, \ldots, e_k, cu k≥1k \geq 1, care pornește din nodul 11, în care fiecare muchie continuă din nodul în care s-a terminat cea dinainte și în care muchia eje_j respectă stej≤j−1≤drejst_{e_j} \leq j - 1 \leq dr_{e_j}. Nodurile și muchiile se pot repeta. Să se afle câte drumuri se termină în nodul nn. Deoarece rezultatul poate fi foarte mare, se cere modulo 109+710^9 + 7.

Date de intrare

Pe prima linie se găsesc două numere naturale, nn și mm. Pe fiecare dintre următoarele mm linii se găsesc patru numere naturale, uiu_i, viv_i, stist_i și dridr_i.

Date de ieșire

Pe prima linie se va găsi un număr natural, numărul de drumuri care se termină în nodul nn, modulo 109+710^9 + 7.

Restricții și precizări

  • 2≤n≤502 \leq n \leq 50;
  • 1≤m≤1001 \leq m \leq 100;
  • 1≤ui,vi≤n1 \leq u_i, v_i \leq n;
  • 0≤sti≤dri≤1090 \leq st_i \leq dr_i \leq 10^9;
  • Între două noduri pot exista mai multe muchii
  • Pot exista muchii cu ui=viu_i = v_i.
  • Două drumuri sunt diferite dacă diferă șirurile lor de muchii.
# Punctaj Restricții
0 0 Exemple
1 60 dri≤100dr_i \leq 100
2 40 Fără restricții suplimentare

Exemplul 1

stdin

4 4
1 2 0 1
2 3 1 3
3 4 2 2
2 4 3 5

stdout

4

Explicație

Cele 44 drumuri care se termină în nodul 44 sunt:

  • 1→2→3→41 \to 2 \to 3 \to 4;
  • 1→2→3→2→41 \to 2 \to 3 \to 2 \to 4;
  • 1→2→3→4→2→41 \to 2 \to 3 \to 4 \to 2 \to 4;
  • 1→2→3→2→4→2→41 \to 2 \to 3 \to 2 \to 4 \to 2 \to 4.

După 66 muchii parcurse nu se mai poate folosi nicio muchie.

Exemplul 2

stdin

2 2
1 2 0 2
1 2 1 1

stdout

3

Explicație

Drumurile sunt (1)(1), (1,1,1)(1, 1, 1) și (1,2,1)(1, 2, 1), unde fiecare drum este dat prin indicii muchiilor parcurse. Primul drum ajunge în nodul 22 și se oprește, iar celelalte două trec prin nodul 22, se întorc în nodul 11 și ajung din nou în nodul 22.

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