1 条题解
-
0
#include<iostream> using namespace std; #define int long long int n,x; int dp[100001]; int maxx(int a,int b){ if(a>b) return a; return b; } inline int read() { int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} return x*f; } signed main(){ n=read(); for(int i=1;i<=n;i++) dp[i]=-1e18; for(int i=1;i<=n;i++){ x=read(); for(int j=i;j;j--){ dp[j]=max(dp[j],dp[j-1]+j*x); } } int cnt=0; for(int i=1;i<=n;i++) cnt=maxx(cnt,dp[i]); cout<<cnt<<endl; return 0; }
水
- 1
信息
- ID
- 4658
- 时间
- 6000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者