Submission #43632

#TimeUsernameProblemLanguageResultExecution timeMemory
43632RezwanArefin01Bali Sculptures (APIO15_sculpture)C++14
0 / 100
74 ms82524 KiB
    #include <bits/stdc++.h>
    using namespace std;
     
    typedef long long ll;
    typedef pair<int, int> ii; 
     
    int dp[101][101][2050], a[110], p[110], n; 
     
    int f(int i, int k, int o) {
    	if(k > i) return 1e9; 
    	if(k == 1) return p[i] | o;
    	int &ret = dp[i][k][o];
    	if(ret != -1) return ret;
     
    	int sum = a[i];
    	ret = 1e9;
    	for(int j = i - 1; j >= 1; j--) {
    		ret = min(ret, f(j, k - 1, sum | o) | sum | o); 
    		sum += a[j];
    	}
    	return ret;
    }
    int main(int argc, char const *argv[]) {
    #ifdef LOCAL_TESTING
    	freopen("in", "r", stdin);
    #endif
    	int n, l, r;
    	cin >> n >> l >> r; 
    	for(int i = 1; i <= n; i++) {
    		cin >> a[i]; p[i] = p[i - 1] + a[i];
    	}
     
    	memset(dp, -1, sizeof dp); 
     
    	cout << f(n, r, 0) << 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...