Submission #1350640

#TimeUsernameProblemLanguageResultExecution timeMemory
1350640bakhtiyarnBali Sculptures (APIO15_sculpture)C++20
0 / 100
1 ms344 KiB
// GPT's code
#include <bits/stdc++.h>
using namespace std;

#define int long long
const int INF = (1LL<<62);

int32_t main() {
    int n, L, R;
    cin >> n >> L >> R;

    vector<int> a(n+1), pref(n+1);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
        pref[i] = pref[i-1] + a[i];
    }

    // dp[i][j] = min OR for first i elements into j segments
    vector<vector<int>> dp(n+1, vector<int>(R+1, INF));

    dp[0][0] = 0;

    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= R; j++) {
            for(int p = 0; p < i; p++) {
                if(dp[p][j-1] == INF) continue;
                int sum = pref[i] - pref[p];
                dp[i][j] = min(dp[i][j], dp[p][j-1] | sum);
            }
        }
    }

    int ans = INF;
    for(int k = L; k <= R; k++) {
        ans = min(ans, dp[n][k]);
    }

    cout << ans << '\n';
}
#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...