Cod sursa(job #1940277)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 26 martie 2017 15:36:18
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>

using namespace std;
int d[100001],v[100001];
int main()
{
    FILE *fin=fopen ("branza.in","r");
    FILE *fout=fopen ("branza.out","w");
    int n,p,u,i,s,t,c,pr;
    long long sol=0;
    fscanf (fin,"%d%d%d",&n,&s,&t);
    p=u=1;
    d[1]=1;
    for (i=1;i<=n;i++){
        fscanf (fin,"%d%d",&c,&pr);
        v[i]=c;
        while (p<=u && c<=v[d[u]]+(i-d[u])*s)
            u--;
        d[++u]=i;
        sol+=(long long)(v[d[p]]+(long long)(i-d[p])*s)*pr;
        if (i-d[p]==t)
            p++;
    }
    fprintf (fout,"%lld",sol);
    return 0;
}