█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 2839

Problema 0xe1 - Cuadrado mágico

  • Autor: pradomaricon
  • Fecha: 2021-02-07 03:14:01 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Incorrecto
0.182 s 12 KBi
#2
Incorrecto
0.145 s 15 KBi
#3
Incorrecto
0.182 s 12 KBi
#4
Incorrecto
0.141 s 16 KBi
#5
Incorrecto
0.139 s 15 KBi
#6
Incorrecto
0.182 s 12 KBi
#7
Incorrecto
0.155 s 15 KBi
#8
Incorrecto
0.18 s 12 KBi
#9
Incorrecto
0.152 s 16 KBi
#10
Incorrecto
0.148 s 16 KBi
#11
Incorrecto
0.152 s 15 KBi
#12
Incorrecto
0.14 s 24 KBi
#13
Incorrecto
0.139 s 16 KBi
#14
Incorrecto
0.152 s 16 KBi
#15
Incorrecto
0.155 s 16 KBi
#16
Incorrecto
0.284 s 20 KBi
#17
Error en tiempo de ejecución (NZEC)
Exited with error status 1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 100 out of bounds for length 100
	at Main.esCuadradoMagico(Main.java:92)
	at Main.main(Main.java:32)
0.216 s 17 KBi
#18
Incorrecto
0.214 s 18 KBi
#19
Incorrecto
0.248 s 18 KBi
#20
Incorrecto
0.249 s 19 KBi
Puntos totales: 0 / 100

Código

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 count=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){
                valorLocal=valorGeneral;
            }
            if(valorLocal==valorGeneral){
                valorLocal=0;
                i++;
            }else{
                continuar=false;
            }
        }
        
        //sumar columnas
        while(continuar && i<filas){
            for (int j = 0; j < filas; j++) {
                valorLocal+=matriz[j][i];
            }
            if(valorLocal==valorGeneral){
                valorLocal=0;
                i++;
            }else{
                continuar=false;
            }
        }
        
        //sumar diagonal
        if (continuar) {
            
            //diagonal principal
            for (int j = 0; j < filas; j++) {
                valorLocal+=matriz[j][j];
            }
            if(valorLocal==valorGeneral){
                //contradiagonal
                for (int j = 0; j < filas; j++) {
                    valorLocal+=matriz[j][matriz.length-j];
                }
                if(valorLocal!=valorGeneral){
                    continuar=false;
                }
                
            }else{
                continuar=false;
            }
            
        }
        
        
        
        return continuar;
    }
    
    
    
}