#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int biggest_stadium(int n, std::vector<std::vector<int>> A)
{
int rt=0; for (int i=0; i<n; i++) for (int j=0; j<n; j++) rt += !A[i][j];
vector<array<int,2>> rg(n);
for (int i=0; i<n; i++){
int mn = n,mx=-1, nr =0;
for (int j=0; j<n; j++){
if (A[i][j]) continue;
mn = min(mn, j); mx = max(mx, j); nr++;
}
if (mx!=-1 && mx-mn+1 != nr) return 0;
rg[i] = {mn, mx};
}
int mn=n,mx=-1,nr=0;
for (int i=0; i<n; i++){
if (rg[i][0] > rg[i][1]) continue;
mn = min(mn, i); mx = max(mx, i); nr++;
}
if (mx-mn+1!= nr) return 0;
int sw = 0;
for (int i=mn; i<mx; i++){
if (!sw && rg[i][0]>=rg[i+1][0] && rg[i][1]<=rg[i+1][1]) continue;
else if (!sw && rg[i+1][0]>=rg[i][0] && rg[i+1][1]<=rg[i][1]) sw=1;
else if (sw && rg[i+1][0]>=rg[i][0] && rg[i+1][1]<=rg[i][1]) continue;
else return 0;
}
for (int i=mn; i<=mx; i++){
for (int j=i+1; j<=mx; j++){
if (rg[i][0]>=rg[j][0] && rg[i][1]<=rg[j][1]) continue;
else if (rg[j][0]>=rg[i][0] && rg[j][1]<=rg[i][1]) continue;
else return 0;
}
}
return rt;
}