Pagini recente » Istoria paginii runda/cnmv_01/clasament | Cod sursa (job #2702404) | Cod sursa (job #1144826) | Cod sursa (job #2729162) | Cod sursa (job #2328169)
#include <fstream>
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
int main()
{
long long pret[100000],k[100001],dq[100000], smin = 0;
int n,t,s,st = 0,dr = 0;
cin>>n>>s>>t;
for(int i=0;i<n;i++){
cin>>pret[i]>>k[i];
}
for(int i=0;i<=n;i++){
while(st<=dr && dq[st]==i-t){
st++;
}
while(st<=dr && pret[i]<=pret[dq[dr]]+(i-dq[dr])*s){
dr--;
}
dq[++dr]=i;
smin += (pret[dq[st]]+s*(i-dq[st]))*k[i];
}
cout<<smin;
return 0;
}