Pagini recente » Cod sursa (job #2901210) | Cod sursa (job #2255490) | Cod sursa (job #329482) | Cod sursa (job #1573702) | Cod sursa (job #2921874)
#include <bits/stdc++.h>
#define NMAX 34580
#define ll long long int
using namespace std;
ifstream fin ("euro.in");
ofstream fout ("euro.out");
ll n, t, v[NMAX], dp[NMAX], total;
void calculez_minim();
int main()
{
fin >> n >> t;
for (ll i = 1; i <= n; i++)
fin >> v[i];
for (ll st = 1, dr = n; st < dr; st++, dr--)
swap(v[st], v[dr]);
for (ll i = 1; i <= n; i++)
v[i] = v[i-1] + v[i];
calculez_minim();
ll left = 1;
ll nr = n;
ll dif = 0;
while (nr)
{
ll poz = dp[left];
total = total + (v[poz]-dif) * nr - t;
left = poz+1;
nr = n - left+1;
dif = v[poz];
}
fout << total;
return 0;
}
void calculez_minim()
{
dp[n] = n;
for (ll i = n-1; i >= 1; i--)
if (v[i] > v[dp[i+1]])
dp[i] = i;
else
dp[i] = dp[i+1];
}