Guest User

Untitled

a guest
Nov 24th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int n,i,j; int val[2001];
  8. cin >> n;
  9. val[0]=0;
  10. for(i=1;i<=n;i++)
  11. cin >> val[i];
  12.  
  13. int dp[2001][2001]={0};
  14.  
  15. for(i=1;i<=n;i++)
  16. dp[i][0]=dp[i-1][0]+i*val[i];
  17. for(i=1;i<=n;i++)
  18. dp[0][i]=dp[0][i-1]+i*val[n-i+1];
  19.  
  20. for(i=1;i<=n;i++)
  21. for(j=1;j<=n;j++)
  22. {
  23. if(i+j>n) continue;
  24. int val1= dp[i-1][j]+ (i+j)*val[i];
  25. int val2= dp[i][j-1]+ (i+j)*val[n-j+1];
  26. dp[i][j]=val1>val2? val1:val2;
  27. }
  28.  
  29. int Max=0;
  30. for(i=0;i<=n;i++)
  31. for(j=0;j<=n;j++)
  32. if(dp[i][j]>Max)
  33. Max=dp[i][j];
  34. cout << Max;
  35. return 0;
  36. }
Add Comment
Please, Sign In to add comment