Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- bool magique = true;
- int tailleM;
- cin >> tailleM;
- int freqNbres[(tailleM^2) + 1] = {0};
- int carreM [tailleM][tailleM];
- for (int lig = 0; lig < tailleM; lig ++)
- {
- for (int col = 0; col < tailleM; col ++)
- {
- int valeur;
- cin >> valeur;
- carreM [lig][col] = valeur;
- if (carreM [lig][col] <= (tailleM^2))
- freqNbres[carreM [lig][col]] ++;
- }
- }
- for (int nombre = 1; nombre <= (tailleM^2); nombre ++)
- {
- if (freqNbres [nombre] != 1)
- magique = false;
- }
- int valeurRef = 0;
- for (int nombre = 0; nombre < tailleM; nombre ++)
- valeurRef += carreM[0][nombre];
- for (int lig = 0; lig < tailleM; lig ++)
- {
- int sommeC = 0;
- for (int col = 0; col < tailleM; col ++)
- sommeC += carreM [lig][col];
- if (sommeC != valeurRef)
- magique = false;
- }
- for (int col = 0; col < tailleM; col ++)
- {
- int sommeC = 0;
- for (int lig = 0; lig < tailleM; lig ++)
- sommeC += carreM [lig][col];
- if (sommeC != valeurRef)
- magique = false;
- }
- int sommeDiag = 0;
- for (int nombre = 0; nombre < tailleM; nombre ++)
- sommeDiag += carreM[nombre][nombre];
- if (sommeDiag != valeurRef)
- magique = false;
- sommeDiag = 0;
- for (int nombre = 0; nombre < tailleM; nombre ++)
- sommeDiag += carreM[tailleM - nombre - 1][nombre];
- if (sommeDiag != valeurRef)
- magique = false;
- if (magique)
- cout << "yes";
- else
- cout << "no";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement