Cod sursa(job #1113822)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 20 februarie 2014 22:23:33
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
struct branza{
    long long p;
    long long c;
}v[101000];
long long n,s,t,i,j,d[2][101000],p,u,nr;
FILE *f,*g;
int main(){
    f=fopen("branza.in","r");
    g=fopen("branza.out","w");
    fscanf(f,"%lld%lld%lld",&n,&s,&t);
    for(i=1;i<=n;i++){
        fscanf(f,"%lld%lld",&v[i].p,&v[i].c);
    }
    p=1;
    for(i=1;i<=n;i++){
        while(u>=p&&d[0][u]+(i-d[1][u])*s>=v[i].p){
            u--;
        }
        d[0][++u]=v[i].p;
        d[1][u]=i;
        if(i-d[1][p]>t)
            p++;
        nr+=v[i].c*d[0][p]+(i-d[1][p])*s*v[i].c;
    }
    fprintf(g,"%lld",nr);
    fclose(f);
    fclose(g);
    return 0;
}