제출 #670893

#제출 시각아이디문제언어결과실행 시간메모리
670893Dan4LifeBali Sculptures (APIO15_sculpture)C++17
0 / 100
15 ms31960 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = (int)2e3+10;
const int LINF = (int)1e18;
int n, A, B;
int a[maxn];
int dp[maxn][maxn];

int recur(int pos, int k, int tot, int Or){
	if(k>B) return LINF;
	if(dp[pos][k]!=-1) return dp[pos][k];
	if(pos==n){
		if(k<A or k>B) return LINF;
		return Or|tot;
	}
	int x1 = recur(pos+1,k,tot+a[pos],Or);
	int x2 = recur(pos+1,k+1,a[pos],Or|tot);
	return dp[pos][k] = min(x1,x2);
}

int32_t main() {
	cin >> n >> A >> B; memset(dp,-1,sizeof(dp));
	for(int i = 0; i < n; i++) cin >> a[i];
	cout << recur(0,1,0,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...