Pagini recente » Cod sursa (job #615011) | Cod sursa (job #1934000) | Cod sursa (job #2716305) | Cod sursa (job #2917390) | Cod sursa (job #73394)
Cod sursa(job #73394)
#include <stdio.h>
#define NMAX 100010
#define LL long long
int N, S, T;
int c[NMAX];
int deck[NMAX];
int poz[NMAX];
int main()
{
int i, nr, cur;
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
scanf("%d %d %d", &N, &S, &T);
LL cost = 0;
LL off = 0;
int p, q;
p = 0, q = -1;
for (i = 1; i <= N; i++, off += S) {
scanf("%d %d", &c[i], &nr);
while (p <= q && poz[p] < i - T) p++;
cur = c[i] - off;
while (p <= q && deck[q] > cur) q--;
q++;
deck[q] = cur;
poz[q] = i;
cost += (LL) nr * (deck[p] + off);
}
printf("%lld\n", cost);
fclose(stdin);
fclose(stdout);
return 0;
}