Submission #1213062

#TimeUsernameProblemLanguageResultExecution timeMemory
1213062AvianshSoccer Stadium (IOI23_soccer)C++20
0 / 100
4595 ms412 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; int biggest_stadium(int n, vector<vector<int>> F) { int ans = 0; for(int mask = 1;mask<(1<<(n*n));mask++){ vector<vector<bool>>sel(n,vector<bool>(n)); int ind = 0; for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ if((1<<ind)&mask){ sel[i][j]=1; } ind++; } } assert(ind==n*n); bool val = 1; for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ if(sel[i][j]&&F[i][j]){ val=0; } } } for(int i = 0;i<n;i++){ bool start = 0; bool en = 0; for(int j = 0;j<n;j++){ if(sel[i][j]){ if(!start){ start=1; } else if(en){ val=0; } } else{ if(start){ en=1; } } } } bool shrink = 0; int s = -1; int e = -1; for(int i = 0;i<n;i++){ int cs = -1; int ce = -1; for(int j = 0;j<n;j++){ if(sel[i][j]){ if(cs==-1){ cs=j; ce=j; } else{ ce=j; } } } if(s==-1){ s=cs; e=ce; } else{ if(shrink){ if(cs<s||ce>e){ val=0; } else{ s=cs; e=ce; } } else{ if(cs<s||ce>e){ if(cs<=s&&ce>=e){ s=cs; e=ce; } else{ val=0; } } else{ shrink=1; } s=cs; e=ce; } } } if(val){ ans=max(ans,__builtin_popcount(mask)); } } 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...