Submission #995761

#TimeUsernameProblemLanguageResultExecution timeMemory
995761aaaaaarrozSoccer Stadium (IOI23_soccer)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; bool limites(int N, int i, int j){ return i>=0&&i<N&&j>=0&&j<N; } int biggest_stadium(int N, vector<vector<int>> F){ int empty_cells=0; bool posible=true; int dx[]={1,0,-1,0}; int dy[]={0,1,0,-1}; pair<int,int>libre; for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ if(F[i][j]==0){ empty_cells++; libre={i,j}; } else{ int grado=0; for(int ii=0;ii<4;ii++){ if(limites(N,i+dx[ii],j+dy[ii])){ if(F[i+dx[ii]][j+dy[ii]]==0){ grado++; } } } if(grado==3){ posible=false; } } } } queue<pair<int,int>>cola; vector<vector<bool>>v(N,vector<bool>(N)); v[libre.first][libre.second]=true; cola.push(libre); while(!cola.empty()){ auto[i,j]=cola.front(); cola.pop(); for(int ii=0;ii<4;ii++){ if(limites(N,i+dx[ii],j+dy[ii])){ if(F[i+dx[ii]][j+dy[ii]]==0&&!v[i+dx[ii]][j+dy[ii]]){ v[i+dx[ii]][j+dy[ii]]=true; cola.push({i+dx[ii],j+dy[ii]}); } } } } for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ if(F[i][j]==0&&!v[i][j]){ posible=false; } } } return posible==true?empty_cells:1; }
#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...