Cod sursa(job #2266030)

Utilizator alex2kamebossPuscasu Alexandru alex2kameboss Data 22 octombrie 2018 09:19:13
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <deque>
#include <vector>
#include <queue>
#include <cstdio>
#include <climits>

using namespace std;

vector <long long> z;
int n,t,s;
long long rez,c,p;

deque <int> q;

int main()
{
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);

    cin>>n>>s>>t;

    for(int i=0;i<n;++i)
    {
        cin>>p>>c;
        z.push_back(p);

        while(!q.empty() && z[q.back()]>p)
            q.pop_back();

        q.push_back(i);

        while(i-q.front()>=t)
            q.pop_front();

        long long ad=INT_MAX;
        for(int poz : q)
            ad=min(ad, (z[poz]+s*(i-poz))*c);

        rez+=ad;
    }

    cout<<rez;

    return 0;
}