Kscale

Time limit: 0.05s Memory limit: 64MB Input: kscale.in Output: kscale.out

Definim funcția scale(A,k1,k2)scale(A, k_1, k_2) care primește ca argumente o matrice binară AA, două numere naturale nenule k1k_1 și k2k_2 și întoarce o matrice binară în care fiecare celulă din AA a fost înlocuită cu o submatrice de dimensiune k1k2k_1 \cdot k_2 de aceeași valoare cu cea originală.

De exemplu, dacă:

A=(1001)A = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}scale(A,2,3)=(111000111000000111000111)scale(A, 2, 3) = \begin{pmatrix} 1 & 1 & 1 & 0 & 0 & 0 \\ 1 & 1 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 \end{pmatrix}

Fie BB o matrice de dimensiune NMN \cdot M. Voi trebuie să construiți o matrice AA de arie minimă, pentru care există k1k_1 și k2k_2 astfel încât scale(A,k1,k2)=Bscale(A, k_1, k_2) = B. Orice matrice validă AA de arie minimă va fi acceptată.

Date de intrare

Fișierul de intrare kscale.in conține pe prima linie două numere naturale nn și mm reprezentând numărul de linii, respectiv coloane ale matricei BB. Următoarele nn linii conțin câte mm caractere de tip 00 sau 11.

Date de ieșire

Fișierul de ieșire kscale.out va conține pe prima linie două numere naturale pp și tt reprezentând numărul de linii, respectiv de coloane ale matricei AA. Pe următoarele pp linii se va afișa matricea AA în format similar cu cel din fișierul de intrare.

Restricții și precizări

# Punctaj Restricții
1 21 N=1;1M100N = 1; 1 \leq M \leq 100
2 18 1N,M1001 \leq N, M \leq 100 și se garantează că există soluție cu k1=k2.k_1 = k_2.
3 49 1N,M1001 \leq N, M \leq 100
4 12 1N,M1 0001 \leq N, M \leq 1 \ 000
  • Anumite teste din interiorul unui subtask pot fi grupate, dar nu neaparat toate.

Exemplul 1

kscale.in

1 10
0000001100

kscale.out

1 5
00010

Exemplul 2

kscale.in

4 6
111000
111000
000111
000111

kscale.out

2 2
10
01

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