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

Envío 1265

Problema 0xe1 - Cuadrado mágico

  • Autor: EstebanFS
  • Fecha: 2020-10-15 17:16:34 UTC (Hace alrededor de 4 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.005 s 1 KBi
#2
Correcto
0.005 s 1 KBi
#3
Correcto
0.005 s 1 KBi
#4
Correcto
0.005 s 1 KBi
#5
Correcto
0.005 s 1 KBi
#6
Correcto
0.005 s 61 KBi
#7
Correcto
0.004 s 1 KBi
#8
Correcto
0.004 s 1 KBi
#9
Correcto
0.004 s 1 KBi
#10
Correcto
0.005 s 1 KBi
#11
Correcto
0.004 s 1 KBi
#12
Correcto
0.004 s 1 KBi
#13
Correcto
0.005 s 1 KBi
#14
Correcto
0.005 s 1 KBi
#15
Correcto
0.005 s 1 KBi
#16
Correcto
0.006 s 1 KBi
#17
Correcto
0.005 s 1 KBi
#18
Correcto
0.006 s 1 KBi
#19
Correcto
0.008 s 1 KBi
#20
Correcto
0.008 s 1 KBi
Puntos totales: 100 / 100

Código

#include <iostream>

using namespace std;

#define D(x) cout << #x << " " << x << endl

int main() {
	int n, initial = 0, auxFD = 0, auxSD = 0;
	bool isMagic = true;
	cin >> n;
	int m[n][n];
	for(int i = 0; i < n; ++i) {
		for(int j = 0; j < n; ++j) cin >> m[i][j];
	}
	for(int i = 0; i < n; ++i) initial += m[0][i];
	for(int i = 0; i < n && isMagic; ++i) {
		int auxR = 0, auxC = 0;
		for(int j = 0; j < n; ++j) {
			auxR += m[i][j];
			auxC += m[j][i];
		}
		isMagic &= (auxR == initial & auxC == initial);
	}
	for(int i = 0; i < n && isMagic; ++i) {
		auxFD += m[i][i];
		auxSD += m[i][n - i - 1];
	}
	isMagic &= (auxFD == initial & auxSD == initial);
	if(isMagic) cout << "Yes" << endl;
	else cout << "No" << endl;
	return 0;
}