Submission #609587

#TimeUsernameProblemLanguageResultExecution timeMemory
609587PlurmBali Sculptures (APIO15_sculpture)C++11
50 / 100
490 ms4340 KiB
#include <bits/stdc++.h> using namespace std; int y[2048]; int dp[2048]; bool check[2048][2048]; long long dps[2048][2048]; long long qs[2048]; int main() { int n, a, b; scanf("%d%d%d", &n, &a, &b); for (int i = 1; i <= n; i++) { scanf("%d", y + i); qs[i] = qs[i - 1] + y[i]; } if (a == 1) { long long oldmask = 0ll; for (long long bit = 60; bit >= 0; bit--) { long long mask = oldmask | ((1ll << bit) - 1ll); for (int i = 1; i <= n; i++) { long long sum = 0ll; for (int j = i; j <= n; j++) { sum += y[j]; check[i][j] = (sum | mask) == mask; } } for (int i = 1; i <= n; i++) { if (check[1][i]) dp[i] = 1; else dp[i] = 1e9; for (int j = 1; j < i; j++) { if (check[j + 1][i]) { dp[i] = min(dp[j] + 1, dp[i]); } } } if (dp[n] > b) { oldmask |= 1ll << bit; } } printf("%lld\n", oldmask); } else { for (int k = 1; k <= b; k++) { for (int i = 1; i <= n; i++) { dps[k][i] = 1e18; for (int j = 1; j < i; j++) { dps[k][i] = min(dps[k][i], dps[k - 1][j] | (qs[i] - qs[j - 1])); } } } long long mn = 1e18; for (int k = a; k <= b; k++) { mn = min(mn, dps[k][n]); } printf("%lld\n", mn); } return 0; }

Compilation message (stderr)

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