Submission #1336411

#TimeUsernameProblemLanguageResultExecution timeMemory
1336411yc11Bikeparking (EGOI24_bikeparking)C++20
0 / 100
1095 ms6748 KiB
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int> n1;
vector<int> n2;
int n3[100][101][101];

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];
    for (int s = 0;s<=min(n1[0],n2[0]);s++){
        for (int f = 0;f<100;f++){
            if (f==0) n3[0][0][s] = s-n2[0];
            else n3[0][f][s] = -1e9;
        }
    }
    for (int id = 1;id<n;id++){
        for (int s = 0;s<=min(n2[id],n1[id]);s++){
            for (int f = 0;f<=n2[id]-s;f++){
                int ans1 = -1e9;
                for (int i = 0;i<=min(min(n2[id],n1[id]),n1[id-1]-f);i++){
                    for (int j = 0;j<=min(n1[id-1],n2[id]-i);j++){

            ans1 = max(ans1,n3[id-1][j][i]+f-(n2[id]-f-s));
      

        }
    }
    n3[id][f][s] = ans1;
            }
        }
    }

    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,n3[n-1][j][i]);
        }
    }
    cout<<ans<<"\n";


    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:42:15: warning: overflow in conversion from 'double' to 'int' changes value from '-1.0e+18' to '-2147483648' [-Woverflow]
   42 |     int ans = -1e18;
      |               ^~~~~
#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...