Submission #1327597

#TimeUsernameProblemLanguageResultExecution timeMemory
1327597okahak71Bali Sculptures (APIO15_sculpture)C++20
50 / 100
82 ms472 KiB
#include <bits/stdc++.h>
#define ll long long
#define all(x) x.begin(), x.end()
#define pb push_back
using namespace std;

const ll inf = 1e10;

void sl(){
    ll n, a, b; cin >> n >> a >> b;
    ll bt = 45; ll curr = (1ll << bt) - 1;
    //if(a);
    vector<ll>v(n), pref(n + 1, 0);
    for(ll i = 0; i < n; i++){
        cin >> v[i];
        pref[i + 1] = pref[i] + v[i];
    }
    while(--bt >= 0){
        vector<ll>dp(n + 1, inf);
        ll temp = curr ^ (1ll << bt); dp[0] = 0;
        for(ll i = 1; i <= n; i++){
            for(ll j = 0; j < i; j++){
                ll ok = ((pref[i] - pref[j]) & (~temp));
                if(!ok)
                    dp[i] = min(dp[i], dp[j] + 1);
            }
        }
        //cout << dp[n][0] << ' ' << dp[n][1] << endl;
        if(dp[n] <= b) curr = temp;
    }
    cout << curr << endl;
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    ll t = 1; //cin >> t;
    while(t--) sl();
}
#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...