Pagini recente » Rating Ilie Rares (RaresI) | Cod sursa (job #1463487) | Cod sursa (job #2079153) | Cod sursa (job #925535) | Cod sursa (job #2085159)
#include <bits/stdc++.h>
#define MAXN 100000
struct A{
long long p, c;
}v[1 + MAXN];
int dq[1 + MAXN], p, u;
int main(){
FILE*fi,*fo;
fi=fopen("branza.in","r");
fo=fopen("branza.out","w");
int n, s, t;
fscanf(fi,"%d%d%d", &n, &s, &t);
long long cost = 0;
p = 0;
u = -1;
for(int i = 1; i <= n; i++){
fscanf(fi,"%lld%lld", &v[i].c, &v[i].p);
v[i].c -= i * s;
while(p <= u && i - dq[p] > t)
p++;
while(u >= p && v[i].c < v[dq[u]].c)
u--;
u++;
dq[u] = i;
cost = cost + (v[dq[p]].c + s * i) * v[i].p;
}
fprintf(fo,"%lld", cost);
fclose(fi);
fclose(fo);
return 0;
}