Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.137 s | 16 KBi |
#2 |
Correcto
|
0.133 s | 15 KBi |
#3 |
Correcto
|
0.14 s | 16 KBi |
#4 |
Correcto
|
0.131 s | 15 KBi |
#5 |
Correcto
|
0.177 s | 12 KBi |
#6 |
Correcto
|
0.18 s | 12 KBi |
#7 |
Correcto
|
0.137 s | 15 KBi |
#8 |
Correcto
|
0.155 s | 16 KBi |
#9 |
Correcto
|
0.176 s | 12 KBi |
#10 |
Correcto
|
0.179 s | 12 KBi |
#11 |
Correcto
|
0.126 s | 16 KBi |
#12 |
Correcto
|
0.133 s | 16 KBi |
#13 |
Correcto
|
0.132 s | 15 KBi |
#14 |
Correcto
|
0.138 s | 15 KBi |
#15 |
Correcto
|
0.14 s | 16 KBi |
#16 |
Correcto
|
0.263 s | 20 KBi |
#17 |
Correcto
|
0.185 s | 17 KBi |
#18 |
Correcto
|
0.189 s | 18 KBi |
#19 |
Correcto
|
0.22 s | 18 KBi |
#20 |
Correcto
|
0.228 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; } }