제출 #248791

#제출 시각아이디문제언어결과실행 시간메모리
248791sahil_kBali Sculptures (APIO15_sculpture)C++14
50 / 100
190 ms508 KiB
#include <iostream> using namespace std; int n, a, b; long long cost[2100]; int dp1[2100]; bool check (long long x) { if (a == 1) { for (int i=1; i<=n; i++) { dp1[i] = 1e9; long long cur = 0; for (int j=i-1; j>=0; j--) { cur += cost[j+1]; if ((cur & x) == cur) { dp1[i] = min(dp1[i], dp1[j]+1); } } } return dp1[n] <= b; } else { return true; } } int main () { cin >> n >> a >> b; for (int i=1; i<=n; i++) { cin >> cost[i]; } long long l = 0, r = (1ll<<50)-1, m; long long ans; while (l <= r) { m = (l+r)/2; if (check(m)) { ans = m; r = m-1; } else { l = m+1; } } cout << ans << endl; } /* 6 1 3 8 1 2 1 5 4 */
#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...