Submission #26027

#TimeUsernameProblemLanguageResultExecution timeMemory
26027nibnalinSplit the sequence (APIO14_sequence)C++14
50 / 100
356 ms5252 KiB
#include <iostream> #include <cstdio> #include <vector> using namespace std; typedef long long int lli; const lli maxn = 1005, maxk = 205, inf = lli(1e9)+5; lli A[maxn], p[maxn]; pair<lli, lli> dp[maxn][maxk]; int main(void) { lli n, k; scanf("%lld%lld", &n, &k); for(lli i = 1;i <= n;i++) scanf("%lld", &A[i]); for(lli i = 1;i <= n;i++) p[i] = A[i]+p[i-1]; for(lli kk = 1;kk <= k;kk++) { for(lli i = 1;i <= n;i++) { dp[i][kk] = {-inf, -1}; for(lli j = 0;j < i;j++) { dp[i][kk] = max(dp[i][kk], {dp[j][kk-1].first+(p[i]-p[j])*p[j], j}); } } } printf("%lld\n", dp[n][k].first); lli idx = n; for(lli kk = k;kk > 0;kk--) { printf("%lld ", dp[idx][kk].second); idx = dp[idx][kk].second; } printf("\n"); }

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:16:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld%lld", &n, &k);
                           ^
sequence.cpp:17:48: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(lli i = 1;i <= n;i++) scanf("%lld", &A[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...
#Verdict Execution timeMemoryGrader output
Fetching results...