Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | memcpy.in, memcpy.out | Sursă | Algoritmiada 2014, Runda 2 |
Autor | Cosmin Silvestru Negruseri | Adăugată de | |
Timp execuţie pe test | 0.3 sec | Limită de memorie | 24096 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Memcpy
Fie o matrice de dimensiuni 1000×1000 cu elemente distincte. Dorim ca în această matrice să copiem submatricea de dimensiuni N x M care are colţul stânga sus în (X, Y) peste submatricea de dimensiuni N x M care are colţul stânga sus în (NEW_X, NEW_Y). Este necesar ca acest lucru să se realizeze folosind N x M atribuiri de tipul A[x][y] = A[z][t]. Sa se determine ordinea minima lexicografica in care pot fi făcute aceste atribuiri pentru a copia corect submatricea?
Date de intrare
Fişierul de intrare memcpy.in va conţine pe o singură linie 6 numere: N, M, X, Y, NEW_X, NEW_Y. Acestea reprezintă dimensiunile submatricei, coordonatele colţului stânga sus pentru poziţia iniţială a submatricei, respectiv pentru poziţia finală.
Date de ieşire
În fişierul de ieşire memcpy.out ar trebui in mod normal sa contina NxM linii, fiecare conţinând câte o pereche de numere. Dacă linia i conţine perechea (ai, bi) atunci celula cu coordonatele (ai, bi) va fi copiată la momentul i. Se observă că destinaţia de copiere pentru această celulă este unică. În consecinţă, nu va fi specificată. Datorita numarului mare de afisari vom inlocui aceste numere cu un singur numar ca se va afla astfel: vom porni de la MOD = 1.000.000.007. Se va face suma din i * ai * bi si se va afisa aceasta valoare modulo MOD.
Restricţii
- 1 ≤ N, M ≤ 1000
- Toate coordonatele citite sau afişate se vor afla în intervalul [1, 1000].
- Submatricele descrise în input vor fi incluse complet în matrice.
Exemplu
memcpy.in | memcpy.out |
---|---|
4 4 1 1 2 2 | 758 |
Explicaţie
...