Submission #766511

#TimeUsernameProblemLanguageResultExecution timeMemory
7665111neBali Sculptures (APIO15_sculpture)C++14
71 / 100
1068 ms67224 KiB
#include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); long long n,a,b;cin>>n>>a>>b; vector<long long>arr(n); for (long long i = 0;i<n;++i){ cin>>arr[i]; } vector<long long>pref(n + 1,0); for (int i = 0;i<n;++i){ pref[i + 1] = pref[i] + arr[i]; } auto query = [&](int u,int v){ return pref[v + 1] - pref[u]; }; long long cur = 0; auto check = [&](long long v){ vector<vector<int>>dp(n + 1); dp[0].push_back(0); for (int i = 0;i<n;++i){ sort(dp[i].begin(),dp[i].end()); dp[i].erase(unique(dp[i].begin(),dp[i].end()),dp[i].end()); for (int x = i;x<n;++x){ if (query(i,x) & v){ continue; } for (auto y:dp[i]){ if (y + 1 <= b) dp[x + 1].push_back(y + 1); } } } for (auto x:dp[n]){ if (x >= a && x <= b)return 1; } return 0; }; long long ans = 0; for (long long i = 50;i>=0;--i){ if (check((cur ^ (1LL<<i)))){ cur ^= (1LL<<i); } else{ ans ^= (1LL<<i); } } cout<<ans<<'\n'; 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...