| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1336111 | yc11 | Bikeparking (EGOI24_bikeparking) | C++20 | 1095 ms | 6752 KiB |
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int> n1;
vector<int> n2;
int n3[101][101][101];
int hi(int id,int f,int s){
if (n3[id][f][s]!=-1e9) return n3[id][f][s];
if ((id==0 and f>0) or f<0 or s<0 ) return -1e9;
if (id==0){
return f-(n2[0]-f-s);
}
int ans = -1e9;
for (int i = 0;i<=min(min(n2[id-1],n1[id-1]),n1[id-1]-f);i++){
for (int j = 0;j<=min(n1[id-1],n2[id-1]-i);j++){
ans = max(ans,hi(id-1,j,i)+f-(n2[id]-f-s));
}
}
n3[id][f][s] = ans;
return ans;
}
signed main(){
cin>>n;
n1.resize(n);
n2.resize(n);
for (int i = 0;i<100;i++){
for (int j = 0;j<100;j++){
for (int k = 0;k<100;k++) n3[i][j][k] = -1e9;
}
}
for (int i = 0;i<n;i++) cin>>n1[i];
for (int i = 0;i<n;i++) cin>>n2[i];
if (n==1){cout<<0;return 0;}
int ans = -1e18;
for (int i = 0;i<=min(n2[n-1],n1[n-1]);i++){
for (int j = 0;j<=min(n2[n-1]-i,n1[n-2]);j++){
ans = max(ans,hi(n-1,j,i)-(n2[n-1]-j-i));
}
}
cout<<ans<<"\n";;
return 0;
}Compilation message (stderr)
| # | 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... | ||||
