Submission #928506

#TimeUsernameProblemLanguageResultExecution timeMemory
928506abcvuitunggioSoccer Stadium (IOI23_soccer)C++17
77.50 / 100
444 ms63024 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; const int mxn=2006; int n,ans,s[mxn][mxn],dp[mxn][mxn]; int biggest_stadium(int N, vector <vector <int>> F){ n=N; int S=0; for (int i=0;i<n;i++) for (int j=0;j<n;j++){ s[i+1][j]=s[i][j]+F[i][j]; if (!F[i][j]) S=j; } for (int k=0;k<=(n<501)*n;k++) for (int i=n;i>=0;i--){ int x=(n>500?S:k),y=(n>500?S:k); for (int j=n;j>i;j--){ while (x&&s[j][x-1]==s[i][x-1]) x--; while (y<n&&s[j][y]==s[i][y]) y++; dp[i][j]=y-x; } for (int j=i+1;j<=n;j++){ dp[i][j]+=max(dp[i+1][j],dp[i][j-1]); ans=max(ans,dp[i][j]); } } 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...