Fişierul intrare/ieşire:robotei.in, robotei.outSursăpreONI 2006 Runda Finala
AutorSilviu-Ionut GanceanuAdăugată de
Timp execuţie pe test0.3 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise | Statistici

Robotei

In fiecare celula a unui caroiaj de dimensiuni NxN se afla plasat cate un robotel. Coltul din stanga sus al caroiajului are coordonatele (0, 0) iar cel din dreapta jos (N-1, N-1). Roboteii sunt programati sa se miste, in fiecare secunda, dupa urmatoarea regula:

newXi = (oldXi2 + offsetX) modulo modX

newYi = (oldYi2 + offsetY) modulo modY,

unde (oldXi, oldYi) reprezinta pozitia veche a robotelului i (modul de numerotare al roboteilor nu este important) si (newXi, newYi) noua lui pozitie. offsetX, offsetY, modX si modY sunt comune regulilor de miscare ale roboteilor.

Cerinta

Stiind ca fiecare robotel va efectua M mutari, aflati cati roboti trec prin pozitia (X, Y) de n ori, pentru fiecare n intre 0 si M.

Date de intrare

Prima linie a fisierului de intrare va contine 8 numere intregi separate de spatii: N, M, X, Y, modX, modY, offsetX si respectiv offsetY cu semnificatiile din enunt.

Date de iesire

Fisierul de iesire va contine cate o linie pentru fiecare n cate doi intregi, n si Cn cu semnificatia: "Cn robotei trec prin pozitia (X, Y) de exact n ori". Perechile de numere vor fi afisate in ordine crescatoare dupa n si vor fi afisate doar cele pentru care Cn este diferit de 0.

Restrictii si precizari

  • Toate numerele din fisierul de intrare sunt intregi din intervalul [0, 1.000.000]
  • Aceasta problema va fi testata cu 10 de teste, fiecare valorand cate 10 puncte. Valorile utilizate in teste pentru N, M, modX si modY se regasesc in tabelul de mai jos.
  • Pe parcurs, o celula poate contine mai multi robotei.
Test12345678910
N203361431398350432668906152344339
M10002100400745337654237891367398500000325000476388666732
modX1331405472270561877997997
modY19295065692564378099911000

Exemplu

robotei.inrobotei.out
3 4 1 2 2 3 1 1
1 2
2 6
3 1

Explicatii

Sunt 3 × 3 = 9 robotei. Robotelul situat in celula (3 2) va avea urmatorul parcurs: (3 2) -> (0 2) -> (1 2) -> (0 2) -> (1 2). In consecinta, el trece de 2 ori prin pozitia (1 2).

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content