Cod sursa(job #3310317)

Utilizator BusinessBirdRuse Andrei Cristian BusinessBird Data 12 septembrie 2025 20:51:37
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>

#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define nmax 100111

long long n,S,T,Q,sf,cod[nmax],v[nmax];
long long sol;

int main()
{
    long long i,a,b;
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);
    scanf("%lld %lld %lld",&n,&S,&T);
    Q=0,sf=-1;
    FOR(i,0,n)
    {
        scanf("%lld %lld",&a,&b);
        for(;Q<=sf&&(i-cod[sf])*S+v[sf]>=a;--sf);
        cod[++sf]=i;
        v[sf]=a;
        if(i-cod[Q]>T)
            Q++;
        sol+=(v[Q]+(i-cod[Q])*S)*b;
    }
    printf("%lld\n",sol);
    return 0;
}