Submission #871164

#TimeUsernameProblemLanguageResultExecution timeMemory
871164NintsiChkhaidzeBali Sculptures (APIO15_sculpture)C++17
37 / 100
23 ms2652 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define s second #define f first #define int ll using namespace std; const int N = 2005; int p[N],a[N],dp[N][N]; int n,A,B; bool check(int x,int len){ for (int i = 0; i <= n; i++) for (int gr = 0; gr <= n; gr++) dp[i][gr] = 0; dp[0][0] = 1; for (int i = 1; i <= n; i++){ for (int j = 1; j <= i; j++){ for (int gr = 1; gr <= n; gr++){ if (dp[i][gr]) continue; if (dp[j - 1][gr - 1]){ int s = p[i] - p[j - 1]; bool c = 1; for (int k = 30; k >= len; k--){ if ((s & (1LL<<k)) > 0 && (x & (1LL<<k)) == 0) {c=0; break;} } if (c) dp[i][gr] = 1; } } } } for (int gr = A; gr <= B; gr++){ if (dp[n][gr]) return 1; } return 0; } signed main() { ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL); cin>>n>>A>>B; for (int i = 1; i <= n; i++){ cin >> a[i]; p[i] = p[i - 1] + a[i]; } int ans=0; for (int b = 30; b >= 0; b--){ if (check(ans,b)) continue; ans |= (1LL<<b); } cout<<ans; } /* 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...