Cod sursa(job #755096)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 4 iunie 2012 17:04:34
Problema Branza Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#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;
}