Submission #603149

#TimeUsernameProblemLanguageResultExecution timeMemory
603149DanerZeinUplifting Excursion (BOI22_vault)C++14
5 / 100
5064 ms7892 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAX_L=505000; const int MAX_N=110; vector<int> mapo(MAX_L); vector<int> mane(MAX_L); void maxObjects(vector<int> &x, vector<int> &dp,const int MAX_L){ for(int i=0;i<x.size();i++){ if(x[i]==0) continue; vector<int> spa; for(int j=0;j<=MAX_L;j++){ if(dp[j]!=0) spa.push_back(j); } for(int j=0;j<spa.size();j++){ for(int k=1;k<=x[i];k++){ dp[spa[j]+(i+1)*k]=max(dp[spa[j]+(i+1)*k],dp[spa[j]]+k); } } for(int k=1;k<=x[i];k++){ dp[(i+1)*k]=max(dp[(i+1)*k],k); } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; ll L; cin>>n>>L; vector<int> neg; for(int i=0;i<n;i++){ int a; cin>>a; neg.push_back(a); } reverse(neg.begin(),neg.end()); int c0; cin>>c0; vector<int> pos; for(int i=0;i<n;i++){ int a; cin>>a; pos.push_back(a); } //const int MAX_L=(n*(n+1)/2)*n; if(abs(L)>MAX_L){ cout<<"impossible\n"; return 0; } mapo[0]=mane[0]=c0; maxObjects(neg,mane,MAX_L); maxObjects(pos,mapo,MAX_L); int ans; if(L>0) ans=mapo[L]; else ans=mane[abs(L)]; for(int i=0;i<=MAX_L;i++){ int d=i-L; if(d>=0 && mane[d]!=0 && mapo[i]!=0){ ans=max(ans,mapo[i]+mane[d]-c0); } } if(ans==0) cout<<"impossible\n"; else cout<<ans<<endl; }

Compilation message (stderr)

vault.cpp: In function 'void maxObjects(std::vector<int>&, std::vector<int>&, int)':
vault.cpp:9:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |   for(int i=0;i<x.size();i++){
      |               ~^~~~~~~~~
vault.cpp:15:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int j=0;j<spa.size();j++){
      |                 ~^~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...