Submission #112120

#TimeUsernameProblemLanguageResultExecution timeMemory
112120toonewbieBali Sculptures (APIO15_sculpture)C++17
71 / 100
1051 ms16376 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define F first
#define S second

const int N = 2006;
const int INF = 1e9;
const ll INFLL = 1e18;

int n, a, b;
int y[N];
ll p[N];
int dp[N][N];

int main() {
    ios_base :: sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> n >> a >> b;
    for (int i = 1; i <= n; i++) {
        cin >> y[i];
        p[i] = p[i - 1] + y[i];
    }
    ll res = 0;
    for (int bt = 42; bt >= 0; bt--) {
        ll cur = (1LL << bt) | res;
        memset(dp, 0, sizeof(dp));
        for (int i = 1; i <= n; i++) {
            if ((p[i] & cur) == 0) {
                dp[1][i] = 1;
            }
        }
        for (int j = 2; j <= n; j++) {
            for (int i = j; i <= n; i++) {
                for (int k = j - 1; k < i; k++) {
                    ll last = p[i] - p[k];
                    if (dp[j - 1][k] == 1 && ((last & cur) == 0)) {
                        dp[j][i] = 1;
                        break;
                    }
                }
            }
        }
        int ok = 1;
        for (int i = a; i <= b; i++) {
            if (dp[i][n]) {
                res |= (1LL << bt);
                break;
            }
        }
    }
    cout << (1LL << 43) - 1 - res << endl;
    return 0;
}

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:46:13: warning: unused variable 'ok' [-Wunused-variable]
         int ok = 1;
             ^~
#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...