Pagini recente » Cod sursa (job #1379935) | Cod sursa (job #1908262) | Cod sursa (job #2501768) | Cod sursa (job #1496045) | Cod sursa (job #755096)
Cod sursa(job #755096)
#include<fstream>
#include<queue>
#include<algorithm>
#define dim 1000000
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
long s,i,n,c,p,t,cm;
long long cost;
priority_queue < pair<int, int>, vector<pair<int,int> > , greater<pair<int, int> > > Q;
long long min(long long a,long long b){
if(a<b)
return a;
return b;
}
int main (){
f>>n>>s>>t;
cost=0;
for( i = 0 ; i < n; ++i ) {
f>>c>>p;
if(!Q.empty() && Q.top().second<i-t)
Q.pop();
if(!Q.empty())
cm=min(Q.top().first+s*i,c);
else
cm=c;
Q.push(make_pair(c-s*i,i));
cost+=(long long )cm*p;
}
g<<cost<<"\n";
return 0;
}