Submission #937310

#TimeUsernameProblemLanguageResultExecution timeMemory
937310Dan4LifeSoccer Stadium (IOI23_soccer)C++17
0 / 100
4572 ms348 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; #define pf push_front #define pb push_back #define ll long long #define vi vector<int> #define sz(a) (int)a.size() #define lb lower_bound #define ub upper_bound #define all(a) begin(a),end(a) const int mxN = 2010; int n; vector<int> col[mxN]; int biggest_stadium(int N, vector<vi> a) { n = N; int ans = 0; for(int i = 0; i < n; i++) col[i].clear(), col[i].pb(-1); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(a[i][j]) col[j].pb(i); for(int i = 0; i < n; i++) col[i].pb(n),sort(all(col[i])); for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(a[i][j]) continue; for(int k = i; k < n; k++){ if(a[k][j]) break; int mxJ = j; for (int l = j; l < n; l++){ int nx_forest = *lb(all(col[l]),i); if(nx_forest<=k) break; mxJ = l; } for(int l = j; l <= mxJ; l++){ int tot = 0, UP = i, DOWN = k; if(l!=j){ while(UP>0 and !a[UP-1][l]) UP--; while(DOWN<n-1 and !a[DOWN+1][l]) DOWN++; } tot+=DOWN-UP+1; int up2 = UP, down2 = DOWN; for(int m = l-1; m >= j; m--){ int pos = lb(all(col[m]),i)-begin(col[m]); int up = max(UP, col[m][pos-1]+1); int down = min(DOWN, col[m][pos]-1); UP = up, DOWN = down; if(m==j) UP=i,DOWN=k; tot+=down-up+1; } UP = up2, DOWN = down2; for(int m = l+1; m <= mxJ; m++){ int pos = lb(all(col[m]),i)-begin(col[m]); int up = max(UP, col[m][pos-1]+1); int down = min(DOWN, col[m][pos]-1); UP = up, DOWN = down; tot+=down-up+1; } ans = max(ans, tot); } } } } return ans; }

Compilation message (stderr)

soccer.cpp: In function 'int biggest_stadium(int, std::vector<std::vector<int> >)':
soccer.cpp:38:6: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   38 |      if(nx_forest<=k) break; mxJ = l;
      |      ^~
soccer.cpp:38:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   38 |      if(nx_forest<=k) break; mxJ = l;
      |                              ^~~
#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...