This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "soccer.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fi first
#define se second
const int maxn=2005;
const int inf=1e9;
int f[maxn][maxn],Max[maxn][maxn];
int dp[35][35][35][35];
int cur[35][35][35];
int biggest_stadium(int n, std::vector<std::vector<int>> F)
{
for(int i=0;i<n;i++) for(int j=0;j<n;j++) for(int k=0;k<n;k++) cur[i][j][k]=-inf;
int x=-1,y=-1,cnt=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) if(F[i][j]==1) x=i,y=j,cnt++;
}
if(cnt==1) return n*n-min(x+1,n-x)*min(y+1,n-y);
if(n<=30){
for(int i=0;i<n;i++){
int l=0;
for(int j=0;j<n;j++){
if(F[i][j]){
for(int s=l;s<j;s++) for(int t=s;t<j;t++) cur[i][s][t]=t-s+1;
l=j+1;
}
}
for(int s=l;s<n;s++) for(int t=s;t<n;t++) cur[i][s][t]=t-s+1;
}
int ans=0;
for(int d=0;d<n;d++){
for(int l=0;l+d<n;l++){
int r=l+d;
for(int i=0;i<n;i++) for(int j=i;j<n;j++){
if(d==0) dp[l][r][i][j]=cur[l][i][j];
else dp[l][r][i][j]=max(dp[l+1][r][i][j]+cur[l][i][j],dp[l][r-1][i][j]+cur[r][i][j]);
dp[l][r][i][j]=max(dp[l][r][i][j],-inf);
ans=max(ans,dp[l][r][i][j]);
}
for(int d2=n-1;d2>=1;d2--) for(int i=0;i+d2<n;i++){
int j=i+d2;
dp[l][r][i+1][j]=max(dp[l][r][i+1][j],dp[l][r][i][j]);
dp[l][r][i][j-1]=max(dp[l][r][i][j-1],dp[l][r][i][j]);
}
}
}
return ans;
}
else{
vector<pii> p;
for(int i=0;i<n;i++){
int l=0;
for(int j=0;j<n;j++){
if(F[i][j]){
if(l<j) p.push_back({l,1-j});
l=j+1;
}
}
if(l<n) p.push_back({l,1-n});
}
sort(p.begin(),p.end());
for(int i=1;i<(int)p.size();i++) if(p[i].se<p[i-1].se) return 0;
p.clear();
for(int i=0;i<n;i++){
int l=0;
for(int j=0;j<n;j++){
if(F[j][i]){
if(l<j) p.push_back({l,1-j});
l=j+1;
}
}
if(l<n) p.push_back({l,1-n});
}
sort(p.begin(),p.end());
for(int i=1;i<(int)p.size();i++) if(p[i].se<p[i-1].se) return 0;
return n*n-cnt;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |