Submission #1305535

#TimeUsernameProblemLanguageResultExecution timeMemory
1305535coolboy19521Bali Sculptures (APIO15_sculpture)C++20
0 / 100
2 ms1864 KiB
#include "bits/stdc++.h"

#define FOR(i,a,b)for(int i=(a);i<(b);i++)
#define F0R(i,a)FOR(i,0,a)
#define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--)
#define R0F(i,a)ROF(i,0,a)
#define REP(a)F0R(_,a)

using namespace std;

const int mxn=2e3+20,mxm=101;

long long dp[mxm][mxn],p[mxn];
int y[mxn];

int main(){
	int n,a,b;cin>>n>>a>>b;
	F0R(i,n)cin>>y[i];
	FOR(i,1,n+1)p[i]=p[i-1]+y[i-1];
	memset(dp,0x3f,sizeof(dp));
	dp[0][0]=0;
	FOR(i,1,n+1)FOR(j,1,min(i+1,mxm)){
		F0R(k,i)dp[j][i]=min(dp[j][i],dp[j-1][k]|(p[i]-p[k]));
	}
	long long ans=LLONG_MAX;
	FOR(i,a,b+1)ans=min(ans,dp[i][n]);
	cout<<ans<<endl;
}
#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...