Cod sursa(job #516986)

Utilizator S7012MYPetru Trimbitas S7012MY Data 27 decembrie 2010 14:14:30
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
#include <deque>
#define DN 1000005
#define sz d.size()
#define fr d.front()
#define bk d.back()
#define LL long long
using namespace std;

deque<LL> d;
LL n,s,t,c[DN],p[DN], r;

int main()
{
    ifstream f("branza.in");
    ofstream g("branza.out");
    f>>n>>s>>t;
    for(int i=1; i<=n; ++i) {
        f>>c[i]>>p[i];
        if(sz && i-fr>t) d.pop_front();
        for (;sz && c[bk]+(i-bk)*s>=c[i]; d.pop_back());
        d.push_back(i);
        r+=((c[fr]+(i-fr)*s)*p[i]);
    }
    g<<r;
    return 0;
}