Submission #170551

#TimeUsernameProblemLanguageResultExecution timeMemory
170551VEGAnnBali Sculptures (APIO15_sculpture)C++14
71 / 100
23 ms504 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll PW = 43;
const int N = 110;
int f[N][N], a[N], n, A, B;
ll res, bad;

bool ok(){
    for (int i = 0; i <= n; i++)
        for (int j = 0; j <= B; j++)
            f[i][j] = 0;
    f[0][0] = 1;
    for (int j = 1; j <= B; j++)
        for (int i = 1; i <= n; i++) {
            if (!f[i - 1][j - 1]) continue;
            ll sum = 0;
            for (int ii = i; ii <= n; ii++){
                sum += a[ii];
                if ((sum & bad) == 0)
                    f[ii][j] = 1;
            }
        }
    for (int j = A; j <= B; j++)
        if (f[n][j])
            return 1;
    return 0;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
//    freopen("in.txt","r",stdin);
    cin >> n >> A >> B;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    res = (1ll << PW) - 1;
    for (ll po = PW - 1; po >= 0; po--) {
        bad ^= (1ll << po);
        if (ok())
            res ^= (1ll << po);
        else bad ^= (1ll << po);
    }
    cout << res;
    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...