Pagini recente » Cod sursa (job #639295) | Cod sursa (job #280732) | Cod sursa (job #386343) | Cod sursa (job #2631872) | Cod sursa (job #2054861)
#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;
}