Cod sursa(job #473933)

Utilizator mihai995mihai995 mihai995 Data 1 august 2010 18:46:17
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

struct oaie{int lana,dist;} v[1<<17];

ifstream in("lupu.in");
ofstream out("lupu.out");

bool cmp(oaie a,oaie b)
{
	return a.dist<b.dist || a.dist==b.dist && a.lana>b.lana;
}

int main()
{
	int n,m=0,X,L,x,y,nr,r=0,i;
	in>>n>>X>>L;
	for (i=1;i<=n;i++)
	{
		in>>x>>y;
		if (x<=X)
		{
			v[++m].dist=(X-x)/L+1;
			v[m].lana=y;
		}
	}
	sort(v+1,v+m+1,cmp);
	nr=0;
	for (i=1;i<=m;)
	{
		for (;v[i].dist==v[i-1].dist;i++);
		nr+=v[i].dist-v[i-1].dist;
		for (;i<=m && nr;nr--,i++)
			r+=v[i].lana;
	}
	out<<r<<"\n";
	return 0;
}