operatii

Time limit: 0.04s Memory limit: 16MB Input: operatii.in Output: operatii.out

Fiind date două tablouri bidimensionale aa şi bb, cu mm linii şi nn coloane fiecare, definim următoarele operaţii:

  1. suma tablourilor aa şi bb, ca fiind un tablou cc cu mm linii şi nn coloane, în care fiecare element este egal cu suma elementelor de pe aceeşi linie şi coloană din aa şi bb. În acest caz folosim operatorul +, adică c=a+bc = a + b.
  2. produsul tablourilor aa şi bb, ca fiind un tablou dd cu mm linii şi nn coloane, in care fiecare element este egal cu produsul elementelor de pe aceeşi linie şi coloană din aa şi bb. În acest caz folosim operatorul , adică d=abd = a \cdot b.

Dacă aa şi bb sunt tablouri identice (aa şi bb au elemente identice pe aceeaşi poziţie), atunci pentru dd se mai foloseşte şi notaţia a2a^2 sau b2b^2

Exemplu:
Pentru m=2m = 2, n=3n = 3 şi tablourile:

Fiind dat un tablou bidimensional aa, cu mm linii, nn coloane şi componente numere naturale dorim să determinăm un şir de tablouri bidimensionale: b1b_1, b2b_2, \dots, bkb_k cu număr minim de termeni (kk minim), cu proprietatea că a=b12+b22++bk2a = b_1^2 + b_2^2 + \dots + b_k^2.

Cerinţă

Să se scrie un program care determină tablourile bidimensionale b1b_1, b2b_2, \dots, bkb_k cu proprietatea din enunţ.

Date de intrare

Fişierul de intrare operatii.in conţine pe prima linie numerele naturale mm şi nn separate prin câte un spaţiu. Pe următoarele mm linii se află elementele tabloului aa, câte nn numere pe o linie, în cadrul unei linii numerele fiind separate între ele prin câte un spaţiu.

Date de ieșire

Fişierul de ieşire operatii.out conţine pe prima linie un număr natural reprezentând valoarea kk, apoi pe următoarele kmk \cdot m linii elementele celor kk tablouri b1b_1, b2b_2, \dots, bkb_k. Fiecare dintre aceste tablouri va fi scris pe câte mm linii consecutive, iar pe fiecare dintre aceste linii se vor afla câte nn numere separate prin câte un spaţiu.

Restricții și precizări

  • 1m,n2001 \leq m, n \leq 200
  • Componentele tabloului a sunt numere naturale 10 000\leq 10 \ 000.
  • Pot exista mai multe solutii, dar în fişierul de ieşire se va scrie una dintre ele.
  • 30%30\% din teste au componentele tabloului a mai mici sau cel mult egale cu 100100 şi m,n100m, n \leq 100,
  • 60%60\% din teste au componentele tabloului a mai mici sau cel mult egale cu 1 0001 \ 000.

Exemplu

operatii.in

2 3
1 2 4
5 5 9

operatii.out

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

Explicație

aa este:

1 2 4
5 5 9

b1b_1 este:

1 1 0
2 2 3

iar b12b_1^2 este:

1 1 0
4 4 9

b2b_2 este:

0 1 2 
1 1 0

iar b22b_2^2 este:

0 1 4
1 1 0

Se observă că b12b_1^2 + b22b_2^2 = aa

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