Cod sursa(job #1159787)

Utilizator ionelasimonaIonela Simona ionelasimona Data 29 martie 2014 21:09:59
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
int sol,n,s,t;
struct branza { int pret, cantitate;} a[100014];
deque <int> d;
int main()
{
    int i,j,indcrt;
    fstream f,g;
    f.open("branza.in",ios::in);
    g.open("branza.out",ios::out);
    f>>n>>s>>t;
    for (i=1;i<=n;i++)
        f>>a[i].pret>>a[i].cantitate;
    for (i=1;i<=n;i++)
    {
        while (!d.empty() && a[d.front()].pret+(i-d.front())*s>a[i].pret)
            d.pop_back();
        d.push_back(i);
        if (i>t)
            if (d.front()==i-t)
                d.pop_front();
        indcrt=d.front();
        sol=sol+(a[indcrt].pret+(i-indcrt)*s)*a[i].cantitate;
    }
    g<<sol;
}