Pagini recente » Cod sursa (job #3209043) | Istoria paginii runda/baaaba/clasament | Istoria paginii runda/oji_2004/clasament | Cod sursa (job #2367628) | Cod sursa (job #1703253)
#include <iostream>
#include<fstream>
#include<deque>
using namespace std;
long long d[35005],sum[35005],x,n,t,tot,p,u,i;
bool check()
{
if(i*(sum[i]-sum[d[u-1]])>i*(sum[i]-sum[d[u]])+d[u]*(sum[d[u]]-sum[d[u-1]])-t) return true;
return false;
}
int main()
{
ifstream f("euro.in");
ofstream g("euro.out");
f>>n>>t;
p=1;u=1;
d[u]=0;
//dequel tine zilele in care convertesti bani
for(i=1;i<=n;i++)
{
f>>x;
sum[i]=sum[i-1]+x;
while(u>1&&check())//verfificam daca merita samai convertim bani in
{ //una din zilele in care merita pana atunci
u--;
}
u++;
d[u]=i;
}
for(i=2;i<=u;i++)
tot+=(sum[d[i]]-sum[d[i-1]])*(d[i])-t;
g<<tot;
return 0;
}