Submission #1332152

#TimeUsernameProblemLanguageResultExecution timeMemory
1332152dymeztkyBali Sculptures (APIO15_sculpture)C++20
50 / 100
152 ms484 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define dymeztky ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define calc(a,x) accumulate(a.begin()+x,a.end(),0LL)
#define ub(a,x) upper_bound(a.begin(), a.end(), x)
#define lb(a,x) lower_bound(a.begin(), a.end(), x)
#define rep(m, n, k) for(int m = n; m <= k; m++)
#define rev(m, n, k) for(int m = n; m >= k; m--)
#define mnel(a) min_element(a.begin(), a.end())
#define mxel(a) max_element(a.begin(), a.end())
#define all(a,x) a.begin()+x, a.end()
#define iii tuple<int,int,int>
#define vvi vector<vector<int>>
#define pc __builtin_popcount
#define prq priority_queue
#define pii pair<int,int>
#define mii map<int,int>
#define sz size() 
#define pb push_back
#define fi first
#define se second
#define endl "\n"

bool debug = false;
const int inf = 0x3f3f3f3f3f3f3f3f;

int n, L, R;
vector<int> a, pre;

bool valid(int mask) {
    vector<int> dp(n+1,inf);
    dp[0] = 0;

    rep(i,1,n) {
        rep(j,0,i-1) {
            if(((pre[i] - pre[j]) | mask) == mask && dp[j] != inf) {
                dp[i] = min(dp[i], dp[j] + 1);
            }
        }
    }

    return L <= dp[n] && dp[n] <= R;
}

void solve() {
    cin >> n >> L >> R;
    a.resize(n+1);
    pre.resize(n+1,0);

    rep(i,1,n) {
        cin >> a[i];
        pre[i] = pre[i-1] + a[i];
    }

    int ans = 0;
    rev(i,60,0) {
        if(!valid(ans | ((1LL << i) - 1))) ans |= (1LL << i);
    }

    cout << ans;
}

int32_t main() {
    dymeztky;

    int t = 1;
    rep(tc,1,t) {
        if(debug) cerr << "--- TC " << tc << " ---" << endl;
        solve(); 
        cout << endl; 
    }
    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...