[BOJ 8604] Kwadrat magiczny
View as PDFBajtazar znalazł w swojej piwnicy bardzo stare pudełko. Gdy je otworzył, zobaczył wielką stertę tajemniczych tabliczek z wypisanymi na nich liczbami. Oto jedna z nich:</p>

Już po chwili Bajtazar zauważył, że jest to kwadrat magiczny! Każdy taki kwadrat jest bowiem tabelką rozmiaru $n \times n$, do której wpisano $n^2$ różnych liczb całkowitych dodatnich o tej własności, że suma liczb w każdym wierszu, w każdej kolumnie i na każdej z dwóch przekątnych jest taka sama. W powyższym kwadracie wszystkie wiersze, kolumny i przekątne sumują się do $74$.
Ucieszony tym odkryciem, Bajtazar zabrał się za przeglądanie innych tabliczek. Niestety na wielu z nich liczby były zatarte. Po dokładniejszych oględzinach zauważył, że zawsze brakuje zawartości pewnych $n$ pól, z których żadne dwa nie znajdują się w jednym wierszu ani w jednej kolumnie. Bajtazar uwielbia zagadki matematyczne, ale nie jest dobry w ich rozwiązywaniu. Czy potrafisz pomóc mu uzupełnić zawartości brakujących pól tak, aby tabliczka znów stanowiła kwadrat magiczny?
입력 형식
Pierwszy wiersz standardowego wejścia zawiera jedną liczbę całkowitą $n$ ($2 ≤ n ≤ 1\,000$), oznaczającą rozmiar kwadratu magicznego. Każdy z kolejnych $n$ wierszy zawiera po $n$ liczb całkowitych $a_{ij}$ ($ 0 ≤ a_{ij} ≤ 10^9$) pooddzielanych pojedynczymi odstępami; liczby $a_{11}, a_{12}, \dots a_{1n}$ reprezentują zawartość pierwszego wiersza tabelki, liczby $a_{21}, a_{22}, \dots a_{2n}$ zawartość drugiego wiersza itd. Dodatnie liczby $a_{ij}$ oznaczają zawartość poszczególnych pól kwadratu magicznego, a zera reprezentują pola, których wartości były zatarte.
출력 형식
Twój program powinien wypisać na standardowe wyjście $n$ wierszy, z których każdy powinien zawierać $n$ dodatnich liczb całkowitych nie większych niż $10^{18}$, pooddzielanych pojedynczymi odstępami. Liczby te mają reprezentować uzupełniony kwadrat magiczny z wejścia.</p>
Możesz założyć, że dane wejściowe będą tak skonstruowane, że uzupełnienie tabelki do kwadratu magicznego w opisany sposób będzie możliwe. Jeśli istnieje więcej niż jedna poprawna odpowiedź, Twój program może wypisać dowolną z nich.
예제 입력
4
0 35 34 4
32 0 7 29
8 30 31 0
33 3 0 36
예제 출력
1 35 34 4
32 6 7 29
8 30 31 5
33 3 2 36
Comments