Fişierul intrare/ieşire: | perspic.in, perspic.out | Sursă | ONI 2009 clasa a 9-a |
Autor | Adrian Diaconu | Adăugată de | |
Timp execuţie pe test | 0.025 sec | Limită de memorie | 6144 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Perspic
Se consideră o matrice pătratică cu N linii şi N coloane ce conţine toate numerele naturale de la 1 la N*N.
Asupra matricei se definesc trei tipuri de operaţii codificate astfel:
- C i j – interschimbarea coloanelor i şi j ale matricei
- R i j – interschimbarea liniilor i şi j ale matricei
- E i j x y – interschimbarea elementului de pe linia i şi coloana j cu elementul de pe linia x şi coloana y.
Asupra matricei se efectuează un set de M astfel de operaţii.
Cerinţă
Se cere să se determine numărul minim de aplicări complete ale acestui set de operaţii după care se ajunge din nou în starea iniţială. În cadrul setului operaţiile se efectuează mereu în aceeaşi ordine şi nu se poate sări peste o operaţie. Deoarece numărul acesta poate fi foarte mare se cere restul împărţirii sale la 13007.
Date de intrare
Fişierul de intrare perspic.in conţine pe prima linie numerele naturale N şi M, separate printr-un spaţiu, reprezentând dimensiunea matricei şi respectiv numărul de operaţii dintr-un set. Pe următoarele M linii se descriu operaţiile setului.
Date de ieşire
Fişierul de ieşire perspic.out va conţine restul împărţirii la 13007 al numărului minim determinat.
Restricţii
- 1 ≤ N ≤ 100
- 1 ≤ M ≤ 10.000
- Pentru 60% din teste numărul minim de aplicări ale setului de operaţii necesare va fi mai mic ca 2.000.000.000.
Exemplu
perspic.in | perspic.out |
---|---|
2 2 C 1 2 R 1 2 | 2 |
3 3 E 1 1 2 2 R 1 2 C 2 3 | 4 |
Explicaţie
Pentru primul exemplu:
Matricea iniţială:
1 2
3 4
Matricea după prima operaţie:
2 1
4 3
Matricea după a doua operaţie(terminarea primului set):
4 3
2 1
Matricea după a treia operaţie:
3 4
1 2
Matricea după a patra operaţie(terminarea celui de al doilea set):
1 2
3 4