Cod sursa(job #2054861)

Utilizator ioana.jianuIoana Jianu ioana.jianu Data 2 noiembrie 2017 17:00:28
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <stdio.h>
using namespace std;
int v[100001],d[100001];
int main(){

    FILE *fin,*fout;
    fin=fopen("branza.in","r");
    fout=fopen("branza.out","w");

    int n,s,t,suma,st,dr,i,x,p;

    fscanf(fin,"%d%d%d",&n,&s,&t);
    t++;

    st=1;
    dr=0;
    suma=0;
    for(i=1;i<=n;i++){
        fscanf(fin,"%d%d",&v[i],&p);

        if(d[st]==i-t)
            st++;
        while(dr>=st && v[i]<= v[d[dr]] + s*(i - d[dr])){
            dr--;
        }
        dr++;
        d[dr]=i;
        suma+=(v[d[st]]+s*(i - d[st]))*p;

    }

    fprintf(fout,"%d",suma);

    fclose(fin);
    fclose(fout);

    return 0;
}