Pagini recente » Cod sursa (job #3202990) | Cod sursa (job #1050745) | Cod sursa (job #2750127) | Cod sursa (job #1184230) | Cod sursa (job #3125633)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("euro.in");
ofstream fout("euro.out");
int n, t, a[35005];
long long ans;
/**
fiecare conversie :
s euro = s * k - t lei
a[1]*k + a[2]*k + ... + a[k]*k
-10 3 -2 4 -6 2 3
-10*1 - 1 = -11
27
poz[i] = ultima zi in care au fpst convertiti banii pana la ziua i, cand in ziua i
dp[i][0/1] = suma maxima obtinuta pana la pozitia i, 1 daca convertesc in ziua i, 0 daca nu
dp[i][0] = max(dp[i-1][0], dp[i-1][1])
dp[i][1] = max(dp[i-1][0] + (s[i] - s[poz[i-1] - 1]) * i - t, dp[i-1][1] + a[i] * i - t)
*/
int main()
{
fin >> n >> t;
for(int i = 1; i <= n; i++){
fin >> a[i];
// s[i] = s[i-1] + a[i];
}
for(int i = 1; i <= n; i++){
long long s = 0;
while(s >= 0 && i <= n)
s += a[i], i++;
i--;
ans += 1LL * s * i - t;
}
fout << ans << "\n";
return 0;
}