Submission #634094

#TimeUsernameProblemLanguageResultExecution timeMemory
634094tvladm2009Bali Sculptures (APIO15_sculpture)C++14
0 / 100
187 ms262144 KiB
#include <iostream> #include <vector> #define int long long using namespace std; const int MAX_N = 2 * 1e3; const int INF = (1LL << 10); const int MAX_L = 11; int y[MAX_N + 1], range[MAX_N + 1][MAX_N + 1]; vector<int> dp[MAX_N + 1][MAX_N + 1]; int n, a, b; signed main() { cin >> n >> a >> b; for (int i = 1; i <= n; i++) { cin >> y[i]; range[i][i] = y[i]; } for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { range[i][j] = range[i][j - 1] + y[j]; } } for (int i = 0; i <= n; i++) { for (int j = 0; j <= n; j++) { dp[i][j].push_back(INF); } } dp[0][0].push_back(0); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { for (int k = 1; k <= i; k++) { for (int it : dp[k - 1][j - 1]) { dp[i][j].push_back(it | range[k][i]); } } } } int answer = INF; for (int i = a; i <= b; i++) { for (int it : dp[n][i]) { answer = min(answer, it); } } cout << answer; 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...