Pagini recente » Cod sursa (job #2340846) | Cod sursa (job #667940) | Cod sursa (job #2664948) | Cod sursa (job #558935) | Cod sursa (job #1571050)
#include<cstdio>
using namespace std;
const int nMax = 100001;
long long c[nMax], dq[nMax];
int main (){
FILE *in = fopen("branza.in","r");
FILE *out = fopen("branza.out","w");
long long n,s,t,p;
fscanf(in,"%lld%lld%lld", &n, &s, &t);
int st = 1 , dr = 0;
long long cmin = 0;
for(int i = 1 ; i <= n ; ++i){
fscanf(in,"%lld%lld",&c[i], &p);
while(st <= dr && c[dq[dr]] + s * (i - dq[dr]) > c[i]) dr--;
dq[++dr] = i;
if(st <= dr && dq[st] < i - t) st++;
cmin += (c[dq[st]] + s * (i - dq[st])) * p;
}
fprintf(out,"%lld\n", cmin);
return 0;
}