Submission #846089

#TimeUsernameProblemLanguageResultExecution timeMemory
846089vjudge1Bali Sculptures (APIO15_sculpture)C++14
100 / 100
60 ms448 KiB
#include <cstdio> #include <algorithm> using namespace std; int n, a, b; int y[2000]; long long sum[2001]; bool dp1[101][101]; bool ok1(long long mask) { dp1[0][0] = true; for(int i = 1; i <= b; i++) dp1[0][i] = false; for(int i = 1; i <= n; i++) { dp1[i][0] = false; for(int j = 1; j <= b; j++) { dp1[i][j] = false; for(int k = 0; k < i; k++) if(dp1[k][j - 1] && ((sum[i] - sum[k]) & ~mask) == 0) { dp1[i][j] = true; break; } } } for(int i = a; i <= b; i++) if(dp1[n][i]) return true; return false; } int dp2[2001]; bool ok2(long long mask) { dp2[0] = 0; for(int i = 1; i <= n; i++) { dp2[i] = b + 1; for(int j = 0; j < i; j++) if(((sum[i] - sum[j]) & ~mask) == 0) dp2[i] = min(dp2[i], dp2[j] + 1); } return dp2[n] <= b; } bool ok(long long mask) { return a == 1 ? ok2(mask) : ok1(mask); } int main() { scanf("%d %d %d", &n, &a, &b); for(int i = 0; i < n; i++) { scanf("%d", y + i); sum[i + 1] = sum[i] + y[i]; } long long mask = 0x1FFFFFFFFFFLL; for(long long high = 0x10000000000LL; high; high >>= 1) if(ok(mask & ~high)) mask &= ~high; printf("%lld\n", mask); }

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:50:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |     scanf("%d %d %d", &n, &a, &b);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sculpture.cpp:52:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |         scanf("%d", y + i);
      |         ~~~~~^~~~~~~~~~~~~
#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...