Submission #1132155

#TimeUsernameProblemLanguageResultExecution timeMemory
1132155vladiliusBali Sculptures (APIO15_sculpture)C++20
46 / 100
1095 ms8896 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second const int lg = 45; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, l, r; cin>>n>>l>>r; vector<int> a(n + 1); vector<ll> p(n + 1); for (int i = 1; i <= n; i++){ cin>>a[i]; p[i] = p[i - 1] + a[i]; } vector<ll> dp[n + 1][r + 1], all; dp[0][0] = {0}; for (int i = 1; i <= n; i++){ for (int j = 1; j <= r; j++){ all.clear(); for (int t = 1; t <= i; t++){ ll s = p[i] - p[t - 1]; for (ll x: dp[t - 1][j - 1]){ all.pb(x | s); } } sort(all.begin(), all.end()); for (int t = 0; t < all.size(); t++){ if (dp[i][j].size() == lg) break; if (!t || all[t] != all[t - 1]){ dp[i][j].pb(all[t]); } } } } ll out = 1e18; for (int i = l; i <= r; i++){ out = min(out, dp[n][i][0]); } cout<<out<<"\n"; }
#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...