Submission #73945

#TimeUsernameProblemLanguageResultExecution timeMemory
73945KLPPBali Sculptures (APIO15_sculpture)C++14
0 / 100
4 ms876 KiB
#include<iostream> using namespace std; typedef long long int lld; #define INF 1000000000000000 lld DP[3000][3000]; lld Y[3000]; lld acc[3000]; lld solve(int pos, int groups){ if(DP[pos][groups]!=-1)return DP[pos][groups]; DP[pos][groups]=INF; for(int j=0;j<pos;j++){ DP[pos][groups]=min(DP[pos][groups],(solve(j,groups-1)|(acc[pos]-acc[j]))); } return DP[pos][groups]; } int main(){ int n,a,b; cin>>n>>a>>b; for(int i=0;i<n;i++)cin>>Y[i]; acc[0]=0; for(int i=0;i<n;i++)acc[i+1]=acc[i]+Y[i]; for(int i=0;i<=n;i++){ for(int j=0;j<=b;j++)DP[i][j]=-1; } for(int j=0;j<=b;j++)DP[0][j]=INF; for(int i=0;i<=n;i++)DP[i][0]=INF; DP[0][0]=0; lld ans=INF; /*for(int i=0;i<=n;i++){ for(int j=0;j<=b;j++)cout<<solve(i,j)<<" "; cout<<endl; }*/ for(int j=a;j<=b;j++){ ans=min(ans,solve(n,j)); //cout<<solve(n,j)<<endl; } cout<<ans<<endl; return 0; }
#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...