Pagini recente » Cod sursa (job #2812466) | Cod sursa (job #2786131) | Cod sursa (job #3158439) | Cod sursa (job #2308144) | Cod sursa (job #2775871)
#include <bits/stdc++.h>
#define int uint64_t
using namespace std;
string prob="branza";
ifstream in(prob+".in");
ofstream out(prob+".out");
int c[100005];
int n,s,t,tot=0,ind=0;
int getmin(int start){
int res=INT_MAX;
int it=0;
for(int i=start-1,j=1;j<=t;j++,i--){
if(res>c[i]+(start-i)*s){
res=c[i]+(start-i)*s;
it=j;
}
}
ind=it;
return res;
}
int32_t main(){
in>>n>>s>>t;
int minn=INT_MAX-s;
int p;
for(int i=0;i<n;i++){
in>>c[i]>>p;
if(ind>t){
minn=getmin(i);
}
if(minn+s>=c[i]){
minn=c[i];
ind=0;
}else minn+=s;
ind++;
tot+=minn*p;
}
out<<tot;
}