Submission #14491

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