Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2015-08-19 19:54:59.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:vagoane.in, vagoane.outSursăJunior Challenge 2015
AutorAndrei ConstantinescuAdăugată deJuniorChallenge2015JuniorChallenge2016 JuniorChallenge2015
Timp execuţie pe test0.65 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Vagoane

Informatorii au aflat ca in trenul de 10 sunt plasate ilegal peste 7 vagoane pline cu ... graunte si cartofi. Se stie ca pe intuneric distingerea unui material de altul nu este o treaba usoara, asa ca Brigada Diverse va demara o ancheta in depoul Garii de Nord, ajutata de M caini special dresat. Cele N vagoane ale trenului sunt dispuse secvential, unul dupa altul in spatele locomotivei, fiind numerotate cu numere intregi consecutive de la 1 la N. Fiecare caine poate fi folosit o singura data de-a lungul verificarii, in vederea testarii unui singur interval compact de vagoane. Un caine va latra imediat daca intalneste 2 vagoane cu acelasi continut in intervalul pe care acesta il verifica (altfel acesta nu va mai latra deloc). Daca un singur caine latra, intreaga operatiune este compromisa, asa ca tu va trebui sa calculezi numarul de moduri de a incarca fiecare vagon cu exact unul din cele C continuturi posibile astfel incat actiunea sa nu fie compromisa.

Date de intrare

Fişierul de intrare vagoane.in contine pe prima linie numerele N, M si C, in ordine si separate prin cate un spatiu.
Pe fiecare din urmatoarele M linii se afla cate doua numere intregi pozitive L si R, astfel incat 1 ≤ LRN, reprezentand capetele intervalului de vagoane pe care cainele respectiv patruleaza.

Date de ieşire

Fişierul de ieşire vagoane.out trebuie sa contina un singur numar intreg nenegativ ANS, reprezentand numarul de moduri de a umple vagoanele trenului modulo 1000000007.

Restricţii

  • 1 ≤ N ≤ 1000000000
  • 0 ≤ M ≤ 200000
  • 1 ≤ C ≤ 500000
  • Subtask 1 (10 puncte): M = 0
  • Subtask 2 (20 puncte): N ≤ 1000, M ≤ 2000
  • Subtask 3 (30 puncte): N ≤ 100000
  • Subtask 4 (40 punctE): Restrictii initiale

Exemplu

vagoane.invagoane.out
3 2 3
1 2
2 3
12

Explicaţie

Cele 12 metode de a incarca trenul sunt, daca codificam cele 3 incarcaturi posibile cu numerele 1, 2 si 3:
1 2 1
1 2 3
1 3 1
1 3 2

2 1 3
2 1 2
2 3 1
2 3 2

3 1 2
3 1 3
3 2 1
3 2 3

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?