Submission #766510

#TimeUsernameProblemLanguageResultExecution timeMemory
7665101neBali Sculptures (APIO15_sculpture)C++14
37 / 100
120 ms2144 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]; } const long long inf = 1e15; 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]; }; vector<vector<int>>adj(n); for (long long i = 0;i<32;++i){ for (int j = 0;j<n;++j){ for (int k = j;k<n;++k){ if (query(j,k) & (1LL<<i)){ continue; } adj[j].push_back(k); } } } 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 = 32;i>=0;--i){ if (check((cur ^ (1LL<<i)))){ cur ^= (1LL<<i); } else{ ans ^= (1LL<<i); } } cout<<ans<<'\n'; return 0; }

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:11:18: warning: unused variable 'inf' [-Wunused-variable]
   11 |  const long long inf = 1e15;
      |                  ^~~
#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...