Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define MAXN 2005
- int N;
- #define In std::cin
- #define Out std::cout
- int V[MAXN];
- void Citire() {
- In >> N;
- for (int i=0; i<N; ++i)
- In >> V[i+1];
- }
- int DP[MAXN][MAXN]; // DP[nr][len] - am eleminat nr elemente in total, iar la stanga avem len elemente scoase
- void Rezolvare() {
- for (int i=1, j; i<=N; ++i)
- for (j=0; j<=i; ++j)
- DP[i][j] = std::max(DP[i-1][j] + i * V[N+j-i+1],
- DP[i-1][j-1] + i * V[j]);
- int Max = 0;
- for (int i=0; i<=N; ++i)
- Max = std::max(Max, DP[N][i]);
- Out << Max << '\n';
- }
- int main()
- {
- Citire();
- Rezolvare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement