Cod sursa(job #2031846)

Utilizator marvelousMarvelous marvelous Data 3 octombrie 2017 21:51:01
Problema Branza Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

#define f first
#define s second

using namespace std;

ifstream F("branza.in");
ofstream G("branza.out");

int n, S, t, c, p;
long long s;
deque<pair<long long, int> > dq;

int main()
{
    F>>n>>S>>t;
    for(int i = 1; i <= n;++ i)
    {
        F >> c >> p;
        while(!dq.empty()&&dq.front().f>c) dq.pop_front();
        if(!dq.empty()&&dq.front().s==i-t) dq.pop_front();
        if(!dq.empty()&&dq.front().f<c) s+=1LL*dq.front().f*p, dq.front().f+=S;
        else s+=1LL*c*p, dq.push_back({c+S, i});
    }
    G << s;
    return 0;
}