Pagini recente » Cod sursa (job #2660564) | Cod sursa (job #1365508) | Cod sursa (job #2666615) | Cod sursa (job #2632286) | Cod sursa (job #15058)
Cod sursa(job #15058)
#include <stdio.h>
#define MAXN 34569
int N, T;
int x[MAXN];
long long best[MAXN];
int main()
{
freopen("euro.in", "rt", stdin);
freopen("euro.out", "wt", stdout);
scanf("%d %d", &N, &T);
best[0] = 0;
int i, lst = 1;
for (i = 1; i <= N; i++)
{
scanf("%d", x + i);
best[i] = -(1LL << 60);
int j; long long S = 0; int p = -1;
for (j = i; j >= lst; j--)
{
S += i * x[j];
if (best[j - 1] + S - T > best[i])
{
best[i] = best[j - 1] + S - T;
p = j;
}
}
lst = p;
}
printf("%lld\n", best[N]);
return 0;
}