Prihlásenie Registrácia  

C - Magický štvorec

Časový limit: 5s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3.4, Python 3.11

Počet bodov: 2

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Magický štvorec rádu 3 je štvorcová tabuľka rozmerov 3 x 3, ktorej prvky sú navzájom rôzne prirodzené čísla, pričom súčet prvkov v každom riadku, stĺpci a na oboch diagonálach je rovnaký. Nasledujúci obrázok je príkladom magického štvorca s magickým súčtom S=15.

2 7 6
9 5 1
4 3 8

Úloha

Dané je číslo S. Nájdite taký magický štvorec rádu 3, v ktorom S je súčet každého jeho riadku, stĺpca a diagonály.

Vstup

Vstup bude obsahovať niekoľko riadkov (nie viac ako 100000). Každý z týchto riadkov bude obsahovať jedno prirodzené číslo S ≤ 100000. Riadok s číslom 0 je znakom konca vstupu.

Výstup

Program má dať pre každé číslo S zo vstupu jedinú odpoveď. Odpoveďou môže byť:
  • jediný riadok "no solution" , ak taký magický štvorec neexistuje.
  • 3 riadky po 3 čísla oddelené medzerou reprezentujúce ľubovoľný magický štvorec so súčtom S v riadkoch, stĺpcoch a diagonálach.

Príklad

Vstup:

7
15
0

Výstup:

no solution
2 7 6
9 5 1
4 3 8