Quadrado Mágico

Estou tendo problemas com uma questão do curso de programação básica em C++ da plataforma NEPS.

Essa é a questão:

Ele também da alguns casos de teste:

Exemplo de entrada                             Exemplo de saída
3                                                           15
2 7 6
9 5 1
4 3 8

3                                                           -1
1 2 3
4 5 6
7 8 9

4                                                           34
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Esse é o meu código:
#include

using namespace std;

int main(){
	int n;
	cin >> n;
	int quadrado[n][n], linhas[n], colunas[n], diagonal[2] = {0, 0}, diferente = 0;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			cin >> quadrado[i][j];
		}
		linhas[i] = 0;
		colunas[i] = 0;
	}
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			linhas[i] += quadrado[i][j];
			colunas[i] += quadrado[j][i];
		}
		diagonal[0] += quadrado[i][i];
	}
	for(int i = n - 1; i >= 0; i--){
		for(int j = 0; j < n; j++){
			diagonal[1] += quadrado[i][j];
		}
	}
	for(int i = 0; i < n; i++){
		if(diagonal[0] != diagonal[1] && diagonal[0] != colunas[i] && diagonal[0] != linhas[i]){
			diferente = 1;
		}
	}
	if(diferente){
		cout << "-1" << "\n";
	}else{
		cout << linhas[0] << "\n";
	}
	return 0;
}

Quando submeto meu código a plataforma me diz que minha solução está incorreta, mas testando com os casos oferecidos ele funciona perfeitamente. Na plataforma também é possível ver que outras pessoas enviaram o código e a plataforma aceitou.

Alguém pode me dizer o que tem de errado com meu código?

Desde já, agradeço.