Submission #152580

#TimeUsernameProblemLanguageResultExecution timeMemory
152580beso123Bali Sculptures (APIO15_sculpture)C++14
0 / 100
2 ms380 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n,A,B,a[2002],dp[2002][2002],pref[2002]; vector <int> v; main(){ cin>>n>>A>>B; for(int k=1;k<=n;k++){ cin>>a[k]; pref[k]=pref[k-1]+a[k]; v.push_back(pref[k]); } int ans=pref[n]; for(int k=1;k<=n;k++) dp[1][k]=pref[k]; for(int k=2;k<=B;k++){ for(int i=k;i<=n;i++){ int h=pref[i]/k; vector <int>::iterator it=lower_bound(v.begin(),v.end(),pref[i]-h); int p=distance(v.begin(),it); while(v[p]==pref[i]-h) p++; p++; int h1=dp[k-1][p-1] | (pref[i]-pref[p-1]); dp[k][i]=h1; } ans=min(ans,dp[k][n]); } /* for(int k=1;k<=B;k++){ for(int i=1;i<=n;i++){ cout<<dp[k][i]<<' '; } cout<<endl; }*/ cout<<ans; return 0; }

Compilation message (stderr)

sculpture.cpp:6:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
sculpture.cpp: In function 'int main()':
sculpture.cpp:15:1: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
 for(int k=1;k<=n;k++)
 ^~~
sculpture.cpp:17:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
     for(int k=2;k<=B;k++){
     ^~~
#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...