Submit | All submissions | Best solutions | Back to list |
PG1118 - Cuadrado Magico Grado 11 |
En un pueblo hay un mago que sorprende a los niños dibujando en la arena cuadrados mágicos que tienen un número impar de filas y columnas y donde la suma de cada fila columna y diagonal es la misma e igual al número mágico M = n(n^2+1)/2. Lo que los sorprende aun más es que el cuadrado contiene los números naturales consecutivos empezando desde 1 hasta n^2.
Por ejemplo, los cuadrados que ha dibujado el mago de orden 3, 5 y 7 se muestran a continuación.
Cuadrado mágico de orden 3
2 7 6
9 5 1
4 3 8
M= 3*(3^2+1)/2 = 15
Cuadrado mágico de orden 5
9 3 22 16 15
2 21 20 14 8
25 19 13 7 1
18 12 6 5 24
11 10 4 23 17
M= 5*(5^2+1)/2 = 65
Cuadrado mágico de orden 7
20 12 4 45 37 29 28
11 3 44 36 35 27 19
2 43 42 34 26 18 10
49 41 33 25 17 9 1
40 32 24 16 8 7 48
31 23 15 14 6 47 39
22 21 13 5 46 38 30
M= 7*(7^2+1)/2 = 175
Lo que no saben los niños es que el mago utiliza el siguiente algoritmo para dibujar el cuadrado mágico.
Coloca el número 1 en la mitad de la última columna y cada nuevo consecutivo lo coloca en la casilla de la matriz que esta arriba y a la derecha de la casilla de la casilla actual. La matriz se considera “circular”; es decir, la columna a la derecha de la última se considera la primera (la columna más a la izquierda) y la fila encima de la primera se considera la última (la fila más abajo). Si durante el proceso de llenado de la matriz, una entrada ha sido ocupada, el consecutivo se coloca a la izquierda de la casilla actual.
Con este método el mago puede dibujar cuadrados mágicos de orden —número de filas y columnas— impar pero no par.
Elabore un programa que lea una línea así:
Input
de entrada con un número natural n impar
Output
y que produzca como salida varias líneas donde la primera contiene el número mágico M = n(n^2+1)/2 y las subsiguientes las filas del cuadrado mágico. Los números del cuadrado mágico se separan con un espacio.
Example
Input: 3
Output:15
2 7 6
9 5 1
4 3 8
Input: 5Output:65
9 3 22 16 15
2 21 20 14 8
25 19 13 7 1
18 12 6 5 24
11 10 4 23 17
Added by: | MaratónAFDM |
Date: | 2018-10-08 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | C NCSHARP C++ 4.3.2 JAVA JULIA PYTHON PYPY3 PYTHON3 |