제출 #671135

#제출 시각아이디문제언어결과실행 시간메모리
671135fatemetmhrBali Sculptures (APIO15_sculpture)C++17
100 / 100
76 ms340 KiB
// fikhshal chye daram code miznm :} #include <bits/stdc++.h> using namespace std; typedef long long ll; #define all(x) x.begin(), x.end() #define pb push_back #define fi first #define se second const int maxn5 = 2e3 + 10; const int maxn3 = 105; const int lg = 41; int n, ln, rn, dp[maxn5], a[maxn5]; bool av[maxn3][maxn3]; inline bool check(ll lim){ if(ln == 1){ for(int i = 0; i < n; i++){ ll cur = 0; dp[i] = rn + 1; for(int j = i; j; j--){ cur += a[j]; if((cur | lim) == lim) dp[i] = min(dp[i], dp[j - 1] + 1); } cur += a[0]; if((cur | lim) == lim) dp[i] = 1; } return dp[n - 1] <= rn; } memset(av, false, sizeof av); for(int i = 0; i < n; i++){ ll cur = 0; for(int j = i; j; j--){ cur += a[j]; if((cur | lim) == lim){ for(int k = 0; k < rn; k++){ av[i][k + 1] |= av[j - 1][k]; } } } cur += a[0]; if((cur | lim) == lim){ av[i][1] = true; } } bool re = false; for(int i = ln; i <= rn; i++) re |= av[n - 1][i]; return re; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> ln >> rn; for(int i = 0; i < n; i++) cin >> a[i]; ll cur = (1LL << lg) - 1; for(int i = lg - 1; i >= 0; i--){ if(check(cur ^ (1LL << i))) cur ^= (1LL << i); } cout << cur << endl; } /* 4 1 3 7 10 6 14 */
#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...