Cod sursa(job #1703253)

Utilizator Bodo171Bogdan Pop Bodo171 Data 16 mai 2016 17:40:01
Problema Euro Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#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;
}