document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import java.util.*;
  2. public class cpromB {
  3.     public static void main(String [] args) {
  4.         Scanner scn = new Scanner(System.in);
  5.         while (scn.hasNextInt()) {
  6.             int num = scn.nextInt();
  7.             int [][] array = new int [num][num];
  8.             int total = 0;
  9.             for(int x=0;x<num;x++) {
  10.                 for(int y=0;y<num;y++) {
  11.                     array[x][y] = scn.nextInt();
  12.                     if(x==0)
  13.                         total+= array[x][y];
  14.                 }
  15.             }
  16.             boolean checkTrue = true;
  17.             if(!isRowCheck(array,total,num)) {
  18.                 checkTrue = false;
  19.             }
  20.             if(!isColumnCheck(array,total,num) || !checkTrue) {
  21.                 checkTrue = false;
  22.             }
  23.             if(!isDiagonalRight(array,total,num) || !checkTrue) {
  24.                 checkTrue = false;
  25.             }
  26.             if(!isDiagonalLeft(array,total,num) || !checkTrue) {
  27.                 checkTrue = false;
  28.             }
  29.            
  30.             if(checkTrue)
  31.                 System.out.println("MAGIC");
  32.             else
  33.                 System.out.println("No");
  34.         }
  35.     }
  36.     public static boolean isRowCheck(int [][] array, int total,int num) {
  37.         int temp = 0;
  38.         boolean check = true;
  39.         for(int x=0;x<num;x++) {
  40.             temp = 0;
  41.             for(int y=0;y<num;y++) {
  42.                 temp += array[x][y];
  43.             }
  44.             if(temp != total) {
  45.                 check = false;
  46.                 return check;
  47.             }
  48.         }
  49.         return check;
  50.     }
  51.    
  52.     public static boolean isColumnCheck(int [][] array, int total,int num) {
  53.         int temp = 0;
  54.         boolean check = true;
  55.         for(int x=0;x<num;x++) {
  56.             temp = 0;
  57.             for(int y=0;y<num;y++) {
  58.                 temp += array[y][x];
  59.             }
  60.             if(temp != total) {
  61.                 check = false;
  62.                 return check;
  63.             }
  64.         }
  65.         return check;
  66.     }
  67.    
  68.     public static boolean isDiagonalRight(int [][] array, int total,int num) {
  69.         int temp = 0;
  70.         boolean check = true;
  71.         for(int x=0;x<num;x++) {
  72.             temp += array[x][x];
  73.         }
  74.         if(temp != total) {
  75.             check = false;
  76.             return check;
  77.         }
  78.         return check;
  79.     }
  80.    
  81.     public static boolean isDiagonalLeft(int [][] array, int total,int num) {
  82.         int temp = 0;
  83.         boolean check = true;
  84.         for(int x=num-1;x>=0;x--) {
  85.             temp += array[num-x-1][x];
  86.         }
  87.         if(temp != total) {
  88.             check = false;
  89.             return check;
  90.         }
  91.         return check;
  92.     }
  93. }
');