This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
int N,A,B,G[2020]; long long X[2020]; bool gr[101][101];
int main()
{
scanf ("%d %d %d",&N,&A,&B);
for (int i=1;i<=N;i++){
scanf ("%lld",&X[i]);
X[i] += X[i-1];
}
if (A == 1){
long long ans = 0;
for (int k=40;k>=0;k--){
long long want = ans + (1ll << k) - 1;
for (int i=1;i<=N;i++) G[i] = 10000;
for (int j=1;j<=N;j++) for (int i=1;i<=j;i++){
long long see = X[j] - X[i-1];
if ((see | want) == want){
if (G[j] > G[i-1] + 1)
G[j] = G[i-1] + 1;
}
}
if (G[N] > B) ans += (1ll << k);
}
printf ("%lld\n",ans);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |