Pagini recente » Cod sursa (job #468165) | Cod sursa (job #1803173) | Cod sursa (job #1193365) | Cod sursa (job #331988) | Cod sursa (job #2046573)
#include <stdio.h>
#include <stdlib.h>
int deque[100000][2];
int main()
{
int n,p,q,pret,req,f=0,l=0,s=0,i;
FILE*fi,*fo;
fi=fopen("branza.in","r");
fo=fopen("branza.out","w");
fscanf(fi,"%d%d%d",&n,&p,&q);
deque[0][0]=100000000;
for(i=0;i<n;i++){
fscanf(fi,"%d%d",&pret,&req);
if(i-deque[f][1]>q)
f++;
l++;
while(l>f && deque[l-1][0]+(i-deque[l-1][1])*p>pret)
l--;
deque[l][0]=pret;
deque[l][1]=i;
s+=req*(deque[f][0]+(i-deque[f][1])*p);
}
fprintf(fo,"%d",s);
fclose(fi);
fclose(fo);
return 0;
}