Submission #14492

#TimeUsernameProblemLanguageResultExecution timeMemory
14492club4208Bali Sculptures (APIO15_sculpture)C++98
50 / 100
100 ms1116 KiB
#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];
    }
 
    
        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 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...