#include "soccer.h"
#include <bits/stdc++.h>
#define ALL(x) x.begin(),x.end()
using namespace std;
typedef vector<int> vi;
int n,con;
vector<vi> mat,psum;
bool xd=true;
int biggest_stadium(int N,vector<vi> F)
{
    n=N;
    mat.assign(N+2,vi(N+2,1));
    psum.assign(N+2,vi(N+2,0));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            mat[i][j]=F[i-1][j-1];
        }
    }
    for(int i=1;i<=N;i++){
        int j=1;
        for(;j<=N && mat[i][j]==1;j++);
        for(;j<=N && mat[i][j]==0;j++);
        for(;j<=N && mat[i][j]==1;j++);
        if(j<=N){
            xd=false;
        }
    }
    for(int i=1;i<=N;i++){
        int j=1;
        for(;j<=N && mat[j][i]==1;j++);
        for(;j<=N && mat[j][i]==0;j++);
        for(;j<=N && mat[j][i]==1;j++);
        if(j<=N){
            xd=false;
        }
    }
    vector<pair<int,int>> hori(n+2),vert(n+2);
    if(xd){
        for(int i=0;i<=n+1;i++){
            int j=0;
            for(;j<=n+1 && mat[i][j]==1;j++);
            hori[i].first=j-1;
            j=n+1;
            for(;j>=0 && mat[i][j]==1;j--);
            hori[i].second=j+1;
        }
        for(int i=0;i<=n+1;i++){
            int j=0;
            for(;j<=n+1 && mat[j][i]==1;j++);
            vert[i].first=j-1;
            j=n+1;
            for(;j>=0 && mat[j][i]==1;j--);
            vert[i].second=j+1;
        }
        for(int i=1;i<=n+1;i++){
            for(int j=1;j<=n+1;j++){
                psum[i][j]=psum[i-1][j]+psum[i][j-1]-psum[i-1][j-1]+(mat[i][j]==0?1:0);
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(mat[i][j]==0){
                    con++;
                    //izquierda arriba;
                    //hori[i].first vert[i].first;
                    if(psum[vert[j].first][hori[i].first]>0){
                        xd=false;
                    }
                    //izquierda abajo;
                    if(psum[n][hori[i].first]-psum[vert[j].second-1][hori[i].first]-psum[n][0]+psum[vert[j].second-1][0]>0){
                        xd=false;
                    }
                }
            }
        }
        if(xd){
            return con;
        }else{
            return 1;
        }
    }else{
        return 1;
    }
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |