#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int biggest_stadium(int n, vector<vector<int>> F)
{
int dp[n][n][n][n][n];
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
for(int k = 0;k<n;k++){
for(int l = 0;l<n;l++){
fill(dp[i][j][k][l],dp[i][j][k][l]+n,-1e8);
}
}
}
}
//{start point,endpoint,l in curr row, r in curr row, common column}
for(int k = 0;k<n;k++){
for(int s = 0;s<n;s++){
//start point s.
for(int e = s;e<n;e++){
//end point e
if(s==e){
//base case.
for(int l = 0;l<n;l++){
for(int r = l;r<n;r++){
if(F[s][r]){
break;
}
if(k<l||k>r)
continue;
dp[s][e][l][r][k]=r-l+1;
}
}
continue;
}
for(int l = 0;l<n;l++){
for(int r = l;r<n;r++){
if(F[e][r])
break;
if(k<l||k>r)
continue;
for(int pl = l;pl<=r;pl++){
for(int pr = pl;pr<=r;pr++){
if(k<pl||k>pr)
continue;
dp[s][e][l][r][k]=max(dp[s][e][l][r][k],dp[s][e-1][pl][pr][k]+(r-l+1));
}
}
}
}
}
//now end point above s, ie reverse.
for(int e = s-1;e>=0;e--){
//end point e
for(int l = 0;l<n;l++){
for(int r = l;r<n;r++){
if(F[e][r])
break;
if(k<l||k>r)
continue;
for(int pl = l;pl<=r;pl++){
for(int pr = pl;pr<=r;pr++){
if(k<pl||k>pr)
continue;
dp[s][e][l][r][k]=max(dp[s][e][l][r][k],dp[s][e+1][pl][pr][k]+(r-l+1));
}
}
}
}
}
}
}
int ans = 0;
for(int k = 0;k<n;k++){
for(int s = 0;s<n;s++){
for(int e = s;e<n;e++){
for(int i = s;i<=e;i++){
for(int l = 0;l<n;l++){
for(int r = l;r<n;r++){
if(k<l||k>r)
continue;
ans=max(ans,dp[s][i][l][r][k]+dp[e][i][l][r][k]-(r-l+1));
}
}
}
}
}
}
return ans;
}
# | 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... |