Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Incorrecto
|
0.145 s | 16 KBi |
#2 |
Incorrecto
|
0.156 s | 16 KBi |
#3 |
Incorrecto
|
0.149 s | 15 KBi |
#4 |
Incorrecto
|
0.148 s | 15 KBi |
#5 |
Incorrecto
|
0.149 s | 16 KBi |
#6 |
Incorrecto
|
0.154 s | 15 KBi |
#7 |
Incorrecto
|
0.157 s | 15 KBi |
#8 |
Incorrecto
|
0.138 s | 16 KBi |
#9 |
Incorrecto
|
0.18 s | 20 KBi |
#10 |
Incorrecto
|
0.183 s | 27 KBi |
#11 |
Incorrecto
|
0.139 s | 15 KBi |
#12 |
Incorrecto
|
0.145 s | 16 KBi |
#13 |
Incorrecto
|
0.139 s | 15 KBi |
#14 |
Incorrecto
|
0.16 s | 16 KBi |
#15 |
Incorrecto
|
0.156 s | 16 KBi |
#16 |
Incorrecto
|
0.317 s | 26 KBi |
#17 |
Incorrecto
|
0.223 s | 17 KBi |
#18 |
Incorrecto
|
0.232 s | 18 KBi |
#19 |
Incorrecto
|
0.272 s | 20 KBi |
#20 |
Incorrecto
|
0.233 s | 18 KBi |
import java.util.Scanner; public class Main { public static Scanner leer = new Scanner(System.in); public static void main(String[] args) { //input dimensiones String dimensiones = leer.nextLine().trim(); int filas = Integer.parseInt(dimensiones); int columnas = filas; int[][] ejemplo1 = new int[filas][columnas]; //input de datos for (int i = 0; i < filas; i++) { String[] filaDada = leer.nextLine().trim().split(" "); int k = 0; for (int j = 0; j < columnas; j++) { ejemplo1[i][j] = Integer.parseInt(filaDada[k]); k++; //System.out.println(ejemplo1[i][j]); } } //int toret = valorSubmatrizMaxima(ejemplo1, filas, columnas); boolean toret= esCuadradoMagico(ejemplo1,filas); if (toret) { System.out.println("yes"); }else{ System.out.println("no"); } } public static boolean esCuadradoMagico(int[][] matriz, int filas) { boolean continuar=true; int valorGeneral=0; int valorLocal=0; int i=0; //sumar filas while(continuar && i<filas){ for (int j = 0; j < filas; j++) { valorLocal+=matriz[i][j]; } if(i==0){ valorGeneral=valorLocal; } if(valorLocal==valorGeneral){ valorLocal=0; i++; }else{ return false; } } //sumar columnas i=0; while(continuar && i<filas){ for (int j = 0; j < filas; j++) { valorLocal+=matriz[j][i]; } if(valorLocal==valorGeneral){ valorLocal=0; i++; }else{ return false; } } //sumar diagonal if (continuar) { //diagonal principal for (int j = 0; j < filas; j++) { valorLocal+=matriz[j][j]; } if(valorLocal==valorGeneral){ valorLocal=0; //contradiagonal for (int j = 0; j < filas; j++) { valorLocal+=matriz[j][matriz.length-1-j]; } if(valorLocal!=valorGeneral){ return false; } }else{ return false; } } return continuar; } }