Submission #499386

#TimeUsernameProblemLanguageResultExecution timeMemory
499386StickfishBali Sculptures (APIO15_sculpture)C++17
50 / 100
224 ms424 KiB
#include <iostream>
using namespace std;
using ll = long long;

const int MAXN = 2077;
ll a[MAXN];
ll minsg_[MAXN]; 
ll* minsg = minsg_ + 1;

signed main() {
    int n, A, B;
    cin >> n >> A >> B;
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    if (A == 1) {
        ll ans = 0;
        for (ll bt = 61; bt >= 0; --bt) {
            for (int i = 0; i < n; ++i)
                minsg[i] = MAXN;
            for (int i = 0; i < n; ++i) {
                ll sm = 0;
                for (int j = i; j >= 0; --j) {
                    sm += a[j];
                    if ((sm - (sm & ans)) < (1ll << bt)) {
                        minsg[i] = min(minsg[i], minsg[j - 1] + 1);
                    }
                }
            }
            if (minsg[n - 1] > B) {
                ans |= (1ll << bt);
            }
        }
        cout << ans << endl;
    } else {

    }
}
#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...