Cod sursa(job #430678)

Utilizator S7012MYPetru Trimbitas S7012MY Data 31 martie 2010 11:36:21
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;

struct oaie{
	int a,t;
}o[100000];

int main()
{
	vector <int> h;
	int smax=0,n,x,l,i,d,tmax=0,j,k=0,z;
	FILE *f=fopen("lupu.in","r");
	FILE *g=fopen("lupu.out","w");
	fscanf(f,"%d %d %d",&n,&x,&l);
	for(i=0; i<n; i++) {
		fscanf(f,"%d %d",&d,&o[i].a);
		o[i].t=(x-d)/l+1;
		if(o[i].t>tmax) tmax=o[i].t;
	}
	//for(i=0; i<n; i++) printf("%d\n",o[i].t);
	//printf("%d\n",tmax);
	for(i=tmax; i>=1; i--) {
		k=0;
		for(j=0; j<n;j++)
			if(o[j].t==i) {
				h.push_back(o[j].a);
				k++;
			}
		/*printf("%d:\n",i);
		for(z=0; z<k; z++) printf("%d ",h[z]);*/
		make_heap(h.begin(),h.end());
		smax+=h.front();
		while(k) {
			h.pop_back();
			k--;
		}
		//printf("\n");
	}
	fprintf(g,"%d",smax);
	fclose(f);
	fclose(g);
	return 0;
}