Pagini recente » Cod sursa (job #2825229) | Cod sursa (job #2434534) | Cod sursa (job #2670492) | Cod sursa (job #2561059) | Cod sursa (job #2054863)
#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,st,dr,i,x,p;
long long suma;
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]]+(long long)s*(i - d[st]))*p;
}
fprintf(fout,"%lld",suma);
fclose(fin);
fclose(fout);
return 0;
}