Pagini recente » Cod sursa (job #921306) | Cod sursa (job #2605648) | Cod sursa (job #1956497) | Cod sursa (job #3234598) | Cod sursa (job #577467)
Cod sursa(job #577467)
#include <stdio.h>
#define nmax 100002
struct element{long long nr, poz;};
long long c, x, s, inc, sf, i, t, p, n;
element v[nmax];
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%ld %ld %ld",&n, &p, &t);
scanf("%ld %ld",&c,&x);
inc=1; sf=1;
v[1].poz=1; v[1].nr=c+(n-1)*p;
s=c*x;
for (i=2;i<=n;i++)
{
scanf("%lld %lld",&c,&x);
if (v[inc].poz==(i-t-1))
inc++;
while ((v[sf].nr>c+(n-i)*p) && (sf>=inc))
sf--;
v[++sf].poz=i; v[sf].nr=c+(n-i)*p;
s+=(v[inc].nr-(n-i)*p)*x;
}
printf("%lld",s);
return 0;
}