제출 #27850

#제출 시각아이디문제언어결과실행 시간메모리
27850sampritiBali Sculptures (APIO15_sculpture)C++14
71 / 100
1000 ms17812 KiB
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int N; int Y[2000]; int dp[2000][2000]; int solve(int i, int j, long long mask) { if(i == N) { return j == 0; } if(j == 0) return 0; if(dp[i][j] != -1) return dp[i][j]; dp[i][j] = 0; long long sum = 0; for(int k = i; k < N; k++) { sum += Y[k]; if((sum | mask) == mask) { dp[i][j] |= solve(k + 1, j - 1, mask); } } return dp[i][j]; } int main() { ios::sync_with_stdio(false); cin.tie(0); int A, B; cin >> N >> A >> B; for(int i = 0; i < N; i++) cin >> Y[i]; long long ans = (1LL << 41) - 1; for(int bit = 40; bit >= 0; bit--) { long long test = ans ^ (1LL << bit); memset(dp, -1, sizeof dp); bool pos = false; for(int x = A; x <= B; x++) { if(solve(0, x, test)) { pos = true; break; } } if(pos) { ans = test; } } 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...