Aprogressive

Time limit: 0.5s Memory limit: 128MB Input: aprogressive.in Output: aprogressive.out

Se consideră matricea TT cu nn linii (numerotate de la 11 la nn) și mm coloane (numerotate de la 11 la mm) ce conține numere întregi.

O submatrice a matricei TT este definită prin linia și coloana colțului stânga-sus (x1,y1)(x_1,y_1), respectiv linia și coloana colțului dreapta-jos (x2,y2)(x_2,y_2), cu 1x1x2n1 \leq x_1 \leq x_2 \leq n și 1y1y2m1 \leq y_1 \leq y_2 \leq m și conține toate elementele de pe pozițiile (x,y)(x,y) ale matricei pentru care x1xx2x_1 \leq x \leq x_2 și y1yy2y_1 \leq y \leq y_2. În particular, submatricea cu colțul stânga-sus în (1,1)(1,1) și colțul dreapta-jos în (n,m)(n,m) este identică cu matricea TT.

Pentru fiecare linie a unei submatrice date, se calculează suma pe linie prin adunarea elementelor aflate pe aceasta. Sumele obținute pentru fiecare dintre liniile acestei submatrice formează termenii unui șir, numit șirul SS al sumelor pe linii. Spunem că submatricea este aprogressive dacă x1<x2x_1 < x_2 și y1<y2y_1 < y_2 și șirul SS al sumelor pe linii poate fi rearanjat pentru a forma, cu toți termenii săi, o progresie aritmetică de rație nenulă rr.

Forma comprimată a unei submatrice RR cu colțul stânga-sus (x1,y1)(x_1,y_1) și colțul dreapta-jos (x2,y2)(x_2,y_2) se notează cu C(R)\mathbb{C}(R) și se definește astfel:

  • dacă x1=x2x_1 = x_2 (este o submatrice linie) sau dacă y1=y2y_1 = y_2 (este o submatrice coloană) atunci forma sa comprimată este C(R)\mathbb{C}(R)= (x1,y1,x2,y2,0)(x_1,y_1,x_2,y_2,0). În caz contrar,
  • dacă RR este aprogressive, forma sa comprimată este C(R)\mathbb{C}(R)= (x1,y1,x2,y2,r)(x_1,y_1,x_2,y_2,r). În caz contrar,
  • se împarte RR în 44 submatrice AA, BB, CC, DD cu mulțimi disjuncte de elemente după cum este ilustrat în figura alăturată, unde submatricea AA are colțul stânga-sus în (x1,y1)(x_1,y_1), iar colțul dreapta-jos în ([x1+x22],[y1+y22])(\left[\frac{x_1+x_2}{2}\right], \left[\frac{y_1+y_2}{2}\right]), [x][x] reprezentând partea întreagă a numărului real xx. Forma comprimată a submatricei RR este definită recursiv C(R)\mathbb{C}(R) =(C(A),C(B),C(C),C(D))(\mathbb{C}(A), \mathbb{C}(B), \mathbb{C}(C), \mathbb{C}(D)).

De exemplu, matricea TT din figura alăturată pentru că are n=5n=5, m=5m=5, x1=1x_1=1, y1=1y_1=1, x2=5x_2=5, y2=5y_2=5 se comprimă urmând raționamentul de mai jos.

Pentru că nu este nici matrice-linie și nici matrice-coloană, se determină pentru matricea TT șirul SS al sumelor pe linii, anume: 9,19,14,8,109,19,14,8,10. Pentru că nu este matrice aprogressive, matricea va fi împărțită în submatricele:

  • AA – cu colțurile stânga-sus, respectiv dreapta-jos (1,1)(3,3)(1,1) – (3,3);
  • BB – cu colțurile stânga-sus, respectiv dreapta-jos (1,4)(3,5)(1,4) – (3,5);
  • CC – cu colțurile stânga-sus, respectiv dreapta-jos (4,1)(5,3)(4,1) – (5,3);
  • DD – cu colțurile stânga-sus, respectiv dreapta-jos (4,4)(5,5)(4,4) – (5,5);

Pentru submatricea AA șirul SS al sumelor pe linii este: 4,10,74,10,7, care, prin rearanjare, formează o progresie aritmetică cu rația r=3r=3. Forma comprimată a submatricei AA este C(A)\mathbb{C}(A) = (1,1,3,3,3)(1,1,3,3,3).

Pentru submatricea BB șirul SS al sumelor pe linii este: 5,9,75,9,7, care, prin rearanjare, formează o progresie aritmetică cu rația r=2r=2. Forma comprimată a submatricei BB este C(B)\mathbb{C}(B) = (1,4,3,5,2)(1,4,3,5,2).

Pentru submatricea CC șirul SS al sumelor pe linii este: 5,55,5, care, prin rearanjare, formează o progresie aritmetică dar cu rația r=0r=0. Pentru această submatrice se reia procedeul de împărțire. Forma comprimată a submatricei CC este C(C)\mathbb{C}(C) = ((4,1,4,2,0)(4,3,4,3,0)(5,1,5,2,0)(5,3,5,3,0))((4,1,4,2,0)(4,3,4,3,0)(5,1,5,2,0)(5,3,5,3,0)).

Pentru submatricea DD șirul SS al sumelor pe linii este: 3,53,5, care, prin reanjare formează o progresie aritmetică cu rația r=2r=2. Forma comprimată a submatricei DD este C(D)\mathbb{C}(D) = (4,4,5,5,2)(4,4,5,5,2).

Astfel, forma comprimată a matricei TT este: C(T)=\mathbb{C}(T) = ((1,1,3,3,3)(1,4,3,5,2)((4,1,4,2,0)(4,3,4,3,0)(5,1,5,2,0)(5,3,5,3,0))(4,4,5,5,2)).

Cerință

Cunoscând dimensiunile și elementele matricei TT să se determine:

  • Indicii liniilor matricei TT pentru care suma elementelor aflate pe fiecare dintre acestea este maximă.
  • Indicii liniilor matricei TT pentru care elementele pot fi rearanjate astfel încât să formeze pe linia respectivă, o progresie aritmetică de rație nenulă.
  • Forma comprimată a matricei TT.

Date de intrare

Fișierul de intrare aprogressive.in conține pe prima linie numărul cc reprezentând cerința care trebuie rezolvată.
Pe a doua linie se află numerele naturale nn și mm cu semnificația din enunț.
Pe fiecare dintre următoarele nn linii se află câte mm numere întregi ce reprezintă elementele matricei TT.
Numerele aflate pe aceeași linie a fișierului de intrare sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire aprogressive.out va conține fie răspunsul pentru cerința 11 (dacă c=1c=1), fie răspunsul pentru cerința 22 (dacă c=2c=2), fie răspunsul pentru cerința 33 (dacă c=3c=3).

Pentru cerința 11 se vor afișa, fiecare pe câte un rând, în ordine strict crescătoare, indicii determinați pentru cerința 11.

Pentru cerința 22 se vor afișa, fiecare pe câte un rând, în ordine strict crescătoare, indicii determinați pentru cerința 22, iar dacă nu există linii care să respecte cerința, se va afișa 00.

Pentru cerința 33 se va afișa forma comprimată a matricei TT, pe un singur rând, fără spații, cu valorile separate prin câte o virgulă, încadrate corespunzător între paranteze rotunde.

Restricții și precizări

  • c{1,2,3}c \in \{1, 2, 3\};
  • 1n,m1 0241 \leq n, m \leq 1 \ 024;
  • Elementele matricei TT aparțin intervalului [109,109-10^9, 10^{9}].
# Punctaj Restricții
1 20 c=1c = 1
2 25 c=2c = 2
3 25 c=3c = 3 și n,m512n, m \leq 512
4 30 c=3c = 3

Exemplul 1

aprogressive.in

1
3 4
6 3 7 4
3 1 4 2
2 6 4 8

aprogressive.out

1
3

Explicație

c=1c=1, n=3n=3, m=4m=4. Se rezolvă cerința 11.
Suma pe linia 11 este egală cu 2020. Suma pe linia 22 este egală cu 1010. Suma pe linia 33 este egală cu 2020.
Se afișează indicii liniilor 11 și 33, în această ordine, deoarece pe aceste linii suma este maximă.

Exemplul 2

aprogressive.in

2
3 4
6 3 7 4
3 1 4 2
2 6 4 8

aprogressive.out

2
3

Explicație

c=2c=2, n=3n=3, m=4m=4. Se rezolvă cerința 22.
Elementele liniei 22 pot fi rearanjate astfel încât să formeze o progresie aritmetică cu rația r=1r=1: 1,2,3,41, 2, 3, 4.
Elementele liniei 33 pot fi rearanjate astfel încât să formeze o progresie aritmetică cu rația r=2r=2: 2,4,6,82, 4, 6, 8.
Se afișează indicii liniilor 22 și 33, în această ordine.

Exemplul 3

aprogressive.in

3
5 5
2 1 1 3 2
3 2 5 4 5
1 4 2 1 6
2 2 1 2 1
1 3 1 2 3

aprogressive.out

((1,1,3,3,3)(1,4,3,5,2)((4,1,4,2,0)(4,3,4,3,0)(5,1,5,2,0)(5,3,5,3,0))(4,4,5,5,2))

Explicație

c=3c=3, n=5n=5, m=5m=5. Se rezolvă cerința 33.
Răspunsul de la această cerință se afisează pe o singură linie în fișierul de ieșire.
Etapele de obținere a răspunsului sunt explicate în enunț.

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