Cod sursa(job #2446570)

Utilizator patrickdanDan patrick patrickdan Data 9 august 2019 17:48:11
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>

using namespace std;
int deq[100001];
int cost[100001];
int main()
{
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);
    int n,s,t,i,dor,st,dr;
    long long sol;
    scanf("%d%d%d",&n,&s,&t);
    st=1;dr=0;sol=0;
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&cost[i],&dor);
        if(deq[st]==i-t+1)
            st++;
        while(st<=dr && cost[i]<=cost[deq[dr]]+(i-deq[dr])*s)
            dr--;
        deq[++dr]=i;
        sol+=1LL*dor*((long long)cost[deq[st]]+(i-deq[st])*s);
    }
    printf("%d",sol);
    return 0;
}