Pagini recente » Cod sursa (job #1153583) | Cod sursa (job #1170130) | Cod sursa (job #865019) | Cod sursa (job #2150533) | Cod sursa (job #2036151)
#include <stdio.h>
#include <stdlib.h>
int v[100000][2];
int main()
{
long long int n,s,t,i,q,req,first=0,last,suma=0;
FILE*fi,*fo;
fi=fopen("branza.in","r");
fo=fopen("branza.out","w");
fscanf(fi,"%lld%lld%lld",&n,&s,&t);
for(i=0;i<n;i++){
fscanf(fi,"%d%d",&q,&req);
if(i==0)
{
v[i][0]=q;
last=0;
}
else {
while(last>first && v[last-1][0]+(i-v[last-1][1])*s>=q)
last--;
}
v[last][0]=q;
v[last][1]=i;
last++;
if(i-v[first][1]==t+1)
first++;
suma+=(v[first][0]+(i-v[first][1])*s)*req;
}
fprintf(fo,"%lld",suma);
fclose(fi);
fclose(fo);
return 0;
}