tablou

Time limit: 0.05s Memory limit: 2MB Input: tablou.in Output: tablou.out

Se consideră un tablou bidimensional de dimensiuni date mm (numărul de linii) şi nn (numărul de coloane), ale cărei elemente sunt cifre ale sistemului de numeraţie zecimal. Cu elementele unei linii se construieşte un număr scris în cea mai mică bază posibilă, utilizând toate cifrele de pe linia respectivă, luate de la stânga la dreapta. Se spune că acest număr se ataşează liniei respective. După această regulă se ataşează numere fiecărei linii, numere care se transformă apoi în baza 1010. Se identifică cel mai mare număr scris în baza 1010 dintre numerele ataşate fiecărei linii şi linia pe care se află; dacă sunt mai multe linii pe care se află cel mai mare număr, se alege cea cu indicele cel mai mic (cea mai de sus). Să notăm indicele acestei linii cu pp. De pe linia pp se identifică, dacă există, coloana cu indicele cel mai mic (cea mai din stânga) pe care se află o cifră pară. Să notăm indicele acestei coloane cu qq. Dacă există o astfel de coloană, atunci se elimină din tablou linia pp şi coloana qq. Prin eliminare, numărul de linii şi numărul de coloane ale tabloului scad cu 11, astfel, dacă, de exemplu, s-ar elimina linia 33, atunci linia 44 va deveni linia 33, linia 55 va deveni linia 44, \dots, linia mm va deveni linia m1m - 1, iar dacă, de exemplu, s-ar elimina coloana 44, atunci coloana 55 va deveni coloana 44, coloana 66 va deveni coloana 55, \dots, coloana nn va deveni coloana n1n - 1. S-a obţinut astfel un nou tablou bidimensional, în care liniile se consideră având indicii 1,2,1, 2, \dots, ş.a.m.d., iar coloanele indicii 11, 22, \dots, ş.a.m.d. Dacă pe linia pp nu se poate găsi o cifră pară, tabloul nu se modifică.
Se reia procedeul de mai sus pentru noul tablou, începând cu ataşarea numerelor pentru noile linii, identificarea celui mai mare număr în baza 1010, identificarea liniei pp şi coloanei qq (dacă există) şi apoi eliminarea liniei pp şi coloanei qq, dacă este cazul. Procedeul se opreşte fie când nu se mai identifică pe linia pp o cifră pară, fie când cel puţin una dintre dimensiunile tabloului (numărul de linii sau numărul de coloane) a ajuns la valoarea 11.

Cerinţă

Dându-se tabloul bidimensional cu mm linii şi nn coloane, se cere:

  1. Să se afişeze bazele minime care au fost alese pentru fiecare număr ataşat fiecărei linii din tabloul iniţial
  2. Să se afişeze cel mai mare număr scris în baza 1010 dintre numerele ataşate tabloului iniţial
  3. Să se afişeze numărul de linii şi numărul de coloane pentru tabloul final, precum şi tabloul final

Date de intrare

Fişierul de intrare tablou.in va conţine:

  • pe prima linie din fişier se află numărul natural mm care reprezintă numărul de linii şi numărul natural nn care reprezintă numărul de coloane din tabloul iniţial, numere separate între ele printr-un spaţiu
  • pe următoarele mm linii câte nn numere separate două câte două printr-un spaţiu

Date de ieşire

Fişierul de ieşire tablou.out va conţine:

  • pe prima linie se vor afişa mm numere separate două câte două printr-un spaţiu, reprezentând bazele conform cerinţei a)a);
  • pe a doua linie se află numărul solicitat conform cerinţei b)b);
  • pe a treia linie se află numărul de linii şi numărul de coloane pentru tabloul final, numere separate printr-un spaţiu (fie acestea xx şi yy);
  • pe următoarele xx linii se află câte yy numere separate două câte două printr-un spaţiu.

Restricţii şi precizări

  • 2m,n102 \leq m, n \leq 10.
  • Cel mai mare număr ataşat unei linii, număr scris în baza 1010 este 2 000 000 0002 \ 000 \ 000 \ 000. Cea mai mică bază în care poate fi scris un număr ataşat unei linii este baza 22 şi cea mai mare este 1010.
  • Se acordă punctaje parţiale: cerinţa 11, 20%20\% din punctaj, cerinţa 22, 20%20\% din punctaj, cerinţa 33, 60%60\% din punctaj.

Exemplu

tablou.in

4 4
1 0 1 1
2 0 1 2
1 3 1 3
3 0 0 0

tablou.out

2 3 4 4
192
2 2
1 1
1 3

Explicaţie

Numerele ataşate liniilor sunt: 10111011 în baza 22, 20122012 în baza 33, 13131313 în baza 44, 30003000 în baza 44. Valorile acestora în baza 1010 sunt: 11,59,119,19211, 59, 119, 192. Cel mai mare este 192192 şi se află pe linia 44. Primul element par de pe linia 44 este pe coloana a doua. Se vor elimina deci linia 44 şi coloana 22. Tabloul rămas are 33 linii şi 33 coloane şi are valorile:

111212113\begin{array} {|r|r|r|r|} \hline 1 & 1 & 1 \\ \hline 2 & 1 & 2 \\ \hline 1 & 1 & 3 \\ \hline \end{array}

şi se reia procedeul.
Numerele ataşate liniilor noului tablou sunt: 111111 în baza 22, 212212 în baza 33, 113113 în baza 44. Valorile acestora în baza 1010 sunt: 77, 2323, 2323. Cel mai mare este 2323, iar primul egal cu 2323 se află pe linia 22. Primul element par de pe linia 22 este pe prima coloană. Se vor elimina deci linia 22 şi coloana 11. Tabloul rămas are 22 linii şi 22 coloane şi are valorile:

1113\begin{array} {|r|r|r|r|} \hline 1 & 1 \\ \hline 1 & 3 \\ \hline \end{array}

şi se reia procedeul.
Numerele ataşate liniilor sunt: 1111 în baza 22, 1313 în baza 44. Valorile acestora în baza 1010 sunt: 33, 77. Cel mai mare este 77 şi se află pe linia 22. Pe această linie nu se află niciun element par, deci procedeul se încheie.

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