fork(4) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //long long a[5005];
  5. //long long dp[5005][5005];
  6.  
  7. int main() {
  8. int n,m,k,i,j,p,q;
  9.  
  10. cin>>n>>m>>k;
  11.  
  12. long long a[n];
  13. long long dp[n][k];
  14. long long sum;
  15. long long ans = 0;
  16.  
  17. for(i = 0; i < n; i++) {
  18. cin>>a[i];
  19. }
  20. for(i = 0; i < n; i++) {
  21. for(j = 0; j < k; j++) {
  22. dp[i][j] = 0;
  23. }
  24. }
  25. for(i = 0; i < n; i++) {
  26. for(j = 0; j < k; j++) {
  27. if(i < (m*(j+1))-1)
  28. continue;
  29. sum = 0;
  30. for(p = i, q= m; q; q--, p--) {
  31. sum +=a[p];
  32. }
  33. if(i-m < 0 || j-1 < 0) {
  34. if(i-1 < 0)
  35. dp[i][j] = sum;
  36. else
  37. dp[i][j] = max(sum, dp[i-1][j]);
  38. }
  39. else if(i-1 < 0)
  40. dp[i][j] = dp[i-m][j-1]+sum;
  41. else
  42. dp[i][j] = max(dp[i-m][j-1]+sum, dp[i-1][j]);
  43. }
  44. //cout<<dp[i][k-1]<<" "<<i<<" "<<k-1<<endl;
  45. ans = max(ans, dp[i][k-1]);
  46. }
  47. cout<<ans;
  48. return 0;
  49. }
Success #stdin #stdout 0s 2732KB
stdin
7 1 3
2 10 7 18 5 33 0
stdout
61