Cod sursa(job #755091)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 4 iunie 2012 16:54:17
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
#include<queue>
#include<algorithm>
#define dim 1000000
using namespace std;


ifstream f("branza.in");
ofstream g("branza.out");

int cost,s,i,n,t,cm;
long long  c,p;
priority_queue < pair<int, int>, vector<pair<int,int> > , greater<pair<int, int> > > Q;
int min(int a,int b){
	if(a<b)
		return a;
	return b;
}
int main (){
	
	f>>n>>s>>t;
	
	
	for( i = 1 ; 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+=cm*p;
	}
	g<<cost<<"\n";
	return 0;
}