Submission #1232863

#TimeUsernameProblemLanguageResultExecution timeMemory
1232863m5588ohammedSoccer Stadium (IOI23_soccer)C++20
0 / 100
1042 ms2162688 KiB
#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int arr[2001][2001],vis[2001][2001],n;
bool valid(int i,int j){
    if(i>=n||j>=n||i<0||j<0||arr[i][j]==1) return 0;
    return 1;
}
void dfs(int i,int j){
    vis[i][j]=1;
    if(valid(i+1,j)==1) dfs(i+1,j);
    if(valid(i-1,j)==1) dfs(i-1,j);
    if(valid(i,j+1)==1) dfs(i,j+1);
    if(valid(i,j-1)==1) dfs(i,j-1);
    return;
}
int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
    n=N;
    int siz=0,cnt=0;
    vector <array<int,2>> v;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            arr[i][j]=F[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(arr[i][j]==0) siz++;
            else{
                if(valid(i-1,j)+valid(i+1,j)==2||valid(i,j-1)+valid(i,j+1)==2) return -1;    
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(vis[i][j]==0&&arr[i][j]==0){
                cnt++;
                dfs(i,j);
            }
        }
    }
    if(cnt>1) return -1;
    return siz;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...