Submission #1326126

#TimeUsernameProblemLanguageResultExecution timeMemory
1326126hoangtien69Bali Sculptures (APIO15_sculpture)C++20
0 / 100
1 ms332 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e3 + 5;
#define int long long

int n, l, r;
int maxx[MAXN];
int minn[MAXN];
int pre[MAXN];
int a[MAXN];
int ans = 0;

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin >> n >> l >> r;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++)
    {
        pre[i] = pre[i - 1] + a[i];
    }
    for (int i = 40; i >= 0; i--)
    {
        int lim = ans | ((1 << i) - 1);
        maxx[0] = 0;
        minn[0] = 0;
        for (int j = 1; j <= n; j++)
        {
            maxx[j] = LLONG_MIN;
            minn[j] = LLONG_MAX;
            for (int k = 1; k <= j; k++)
            {
                int val = pre[j] - pre[k - 1];
                if ((val & lim) == val)
                {
                    maxx[j] = max(maxx[j], maxx[k - 1] + 1);
                    minn[j] = min(minn[j], minn[k - 1] + 1);
                }
            }
        }
        if (maxx[n] < l || minn[n] > r)
        {
            ans |= (1 << i);
        }
    }
    cout << ans;
}
#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...