Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define MAXN 2005
  4.  
  5. int N;
  6.  
  7. #define In std::cin
  8. #define Out std::cout
  9.  
  10. int V[MAXN];
  11.  
  12. void Citire() {
  13. In >> N;
  14. for (int i=0; i<N; ++i)
  15. In >> V[i+1];
  16. }
  17.  
  18. int DP[MAXN][MAXN]; // DP[nr][len] - am eleminat nr elemente in total, iar la stanga avem len elemente scoase
  19.  
  20. void Rezolvare() {
  21. for (int i=1, j; i<=N; ++i)
  22. for (j=0; j<=i; ++j)
  23. DP[i][j] = std::max(DP[i-1][j] + i * V[N+j-i+1],
  24. DP[i-1][j-1] + i * V[j]);
  25.  
  26. int Max = 0;
  27. for (int i=0; i<=N; ++i)
  28. Max = std::max(Max, DP[N][i]);
  29. Out << Max << '\n';
  30. }
  31.  
  32. int main()
  33. {
  34. Citire();
  35. Rezolvare();
  36.  
  37. return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement