Pagini recente » Cod sursa (job #1230831) | Cod sursa (job #195533) | Cod sursa (job #1551612) | Cod sursa (job #2495143) | Cod sursa (job #1009134)
#include<fstream>
#include<vector>
#define N 35000
using namespace std;
ifstream f("euro.in");
ofstream g("euro.out");
int n,t,i,s,suma,nr,j,a[N];
long long d[N];
vector<pair<long long,int> >v;
int main()
{
f>>n>>t;
for(i=1;i<=n;++i)
{
f>>a[i];
s+=a[i];
if(s<0)
{
v.push_back(make_pair(s,i));
s=0;
}
}
if(s)
v.push_back(make_pair(s,n));
for(i=0;i<v.size();++i)
{
suma=v[i].first;
nr=v[i].second;
d[i+1]=d[i]+suma*nr-t;
for(j=i-1;j>=0&&(i-j)*(i-j)<=t+100;--j)
{
suma+=v[j].first;
d[i+1]=max(d[i+1],d[j]+suma*nr-t);
}
}
g<<d[v.size()]<<'\n';
return 0;
}