Cod sursa(job #2775879)

Utilizator cezarinfoTulceanu Cezar cezarinfo Data 17 septembrie 2021 19:03:01
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
#include<algorithm>
#include<deque>
using namespace std;
FILE*in=fopen("branza.in","r");
FILE*out=fopen("branza.out","w");
long long n,s,t,c,p,i,j;
long long ras;
struct str
{
    long long po,val;
};
str x;
int main()
{
    fscanf(in,"%d%d%d",&n,&s,&t);
    deque<str> dq;
    for(i=0;i<n;i++)
    {
        fscanf(in,"%d%d",&c,&p);
        while(!dq.empty()&&dq.back().val+(i-dq.back().po)*s>c)
        {
            dq.pop_back();
        }
        x.po=i;
        x.val=c;
        dq.push_back(x);
        if(i-dq.front().po>t)
        {
            dq.pop_front();
        }
        ras+=(dq.front().val+(i-dq.front().po)*s)*p;
    }
    fprintf(out,"%lld",ras);
}