Pagini recente » Cod sursa (job #1480059) | Cod sursa (job #2655842) | Cod sursa (job #1092851) | Cod sursa (job #1873518) | Cod sursa (job #1927584)
#include <fstream>
using namespace std;
ifstream f("euro.in");
ofstream g("euro.out");
int n,m,i,t,j,l[5<<13],q[5<<13],s[5<<13],v[5<<13];
long long dp[5<<13];
int main()
{
f>>n>>t;
for(i=m=1;i<=n;++i)
{
f>>v[i];
s[i]=s[i-1]+v[i];
m+=(q[m]<0);
q[m]+=v[i];
l[m]=i;
}
for(i=1;i<=m;++i)
{
dp[i]=-(1LL<<60);
for(j=i;j>=0&&(i-j)*(i-j)<=t+1000;--j)
dp[i]=max(dp[i],dp[j]+1LL*(s[l[i]]-s[l[j]])*l[i]-t);
}
g<<dp[m];
return 0;
}