Cod sursa(job #1356844)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 23 februarie 2015 16:59:27
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
#define ll long long
using namespace std;
ifstream f("branza.in"); ofstream g("branza.out");
struct art  {ll cost, poz;} v[100001];
ll n,p,t,c,x,i,st,dr,tot;
int main()
{   f>>n>>p>>t>>c>>x;
    st=dr=1;
    v[1].cost=c+(n-1)*p; v[1].poz=1;
    tot=c*x;
    for(i=2;i<=n;i++)
    {   f>>c>>x;
        if(v[st].poz==(i-t-1)) st++;
        while (v[dr].cost>c+(n-i)*p && st<=dr) dr--;
        v[++dr].poz=i;  v[dr].cost=c+(n-i)*p;
        tot+=(v[st].cost-(n-i)*p)*x;
    }
    g<<tot<<'\n'; g.close(); return 0;
}