Un quadrat màgic d’ordre és un arranjament dels enters a en un quadrat on la suma dels números de cada fila, de cada columna i de les dues diagonals principals és la mateixa. La figura següent mostra dos exemples de quadrats màgics d’ordre 3 i 6:
28 4 3 31 35 10
4 9 2 36 18 21 24 11 1
3 5 7 7 23 12 17 22 30
8 1 6 8 13 26 19 16 29
5 20 15 14 25 32
27 33 34 6 2 9
Els quadrats màgics han estat sovint utilitzats com a talismans, per ajudar en els parts, per guarir picades d’insectes o per curar malalties. S’han trobat molts quadrats màgics gravats en plats, copes, medallons o monuments. Per exemple, podeu trobar un altre quadrat màgic a la façana oest de la Sagrada Família de Gaudí.
Dissenyeu una funció
bool quadrat_magic(const vector< vector<int> >& t);
que, donada una taula @t@ de enters, indiqui si representa un quadrat màgic o no.
La taula @t@ és quadrada.