Submission #1226993

#TimeUsernameProblemLanguageResultExecution timeMemory
1226993MarwenElarbiSoccer Stadium (IOI23_soccer)C++17
8 / 100
3817 ms416 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; #define fi first #define se second int biggest_stadium(int N, std::vector<std::vector<int>> F) { int ans=0; for (int cnt = 0; cnt < (1<<(N*N)); ++cnt) { pair<int,int> tab[2][N]; int grid[N][N]; bool nab=true; int cte=0; for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { if((1<<(N*i+j))&cnt) grid[i][j]=1; else grid[i][j]=0; if(grid[i][j]!=F[i][j]&&F[i][j]==1) nab=false; } } if(!nab) continue; for (int i = 0; i < N; ++i){ tab[0][i].fi=tab[1][i].fi=1e9; tab[0][i].se=tab[1][i].se=-1e9; } for (int i = 0; i < N; ++i) { bool test=false; bool test1=false; for (int j = 0; j < N; ++j) { if(grid[i][j]==0){ tab[0][i].fi=min(tab[0][i].fi,j); tab[0][i].se=max(tab[0][i].se,j); cte++; } if(grid[i][j]==0){ test=true; } if(grid[i][j]==1&&test){ test1=true; } if(grid[i][j]==0&&test1) nab=false; } } for (int i = 0; i < N; ++i) { bool test=false; bool test1=false; for (int j = 0; j < N; ++j) { if(grid[j][i]==0){ tab[1][i].fi=min(tab[1][i].fi,j); tab[1][i].se=max(tab[1][i].se,j); } if(grid[j][i]==0) { test=true; } if(grid[j][i]==1&&test) { test1=true; } if(grid[j][i]==0&&test1) nab=false; } } //cout << "hey"<<endl; /*for (int i = 0; i < N; ++i) { cout << tab[0][i].fi<<" "<<tab[0][i].se<<endl; }*/ for (int i = 0; i < N; ++i) { if(tab[0][i].fi==1e9) continue; for (int j = 0; j < N; ++j) { if(tab[0][j].fi==1e9) continue; if (!((tab[0][i].fi<=tab[0][j].fi&&tab[0][i].se>=tab[0][j].se)||(tab[0][j].fi<=tab[0][i].fi&&tab[0][j].se>=tab[0][i].se))){ nab=false; } } } for (int i = 0; i < N; ++i) { if(tab[1][i].fi==1e9) continue; for (int j = 0; j < N; ++j) { if(tab[1][j].fi==1e9) continue; if (!((tab[1][i].fi<=tab[1][j].fi&&tab[1][i].se>=tab[1][j].se)||(tab[1][j].fi<=tab[1][i].fi&&tab[1][j].se>=tab[1][i].se))){ nab=false; } } } if(nab) ans=max(ans,cte); } return ans; }
#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...