Cod sursa(job #952570)

Utilizator MagnvsDaniel Constantin Anghel Magnvs Data 23 mai 2013 17:59:03
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
 
long long v[100001],p[100001];
long long s;
 
int main()
{
    long long n,k,i,c=0,j,x,l=1,t,y,a;
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);
    scanf("%lld%lld%lld",&n,&a,&t);
    v[1]=10000001;
    for (i=1;i<t;i++)
    {
        scanf("%lld%lld",&x,&y);
        ++c;
        while ((x<v[c-1]+(i-p[c-1])*a)&&(c>1)) {--c;}
        v[c]=x;p[c]=i;s+=(v[l]+(i-p[l])*a)*y;
    }
    for (i=i;i<n+1;i++)
    {
        if (p[l]==i-t-1) ++l;
        scanf("%lld%lld",&x,&y);
        ++c;
        while ((x<v[c-1]+(i-p[c-1])*a)&&(c>l)) {--c;}
        v[c]=x;p[c]=i;s+=(v[l]+(i-p[l])*a)*y;
    }
    printf("%lld",s);
    return 0;
}