Pagini recente » Diferente pentru home intre reviziile 445 si 902 | Istoria paginii utilizator/stefania99 | Cod sursa (job #1058811) | Monitorul de evaluare | Cod sursa (job #2002331)
#include <iostream>
#include <fstream>
#define MIN -(1LL<<62)
#define DIM 34600
using namespace std;
ifstream fin("euro.in");
ofstream fout("euro.out");
int n,t,tail=1; long long d[DIM],sum[DIM],s,a,ind[DIM];
void citire()
{
fin >> n >> t;
int i;
for(i=1;i<=n;i++)
{
fin >> a;
sum[i]=sum[i-1]+a;
if(s<0)
{
s=0;
tail++;
}
s+=a;
ind[tail]=i;
}
}
void rezolv()
{
int i,j;
for(i=1;i<=tail;i++)
{
d[i]=MIN;
for(j=0;j<=i and j*j<4*t;j++)
d[i]=max(d[i] , ind[i]*(sum[ind[i]]-sum[ind[i-j]])-t+d[i-j]);
}
fout << d[tail];
}
int main()
{
citire(); rezolv();
return 0;
}