Cod sursa(job #169326)

Utilizator MirageRobert Sandu Mirage Data 1 aprilie 2008 16:53:04
Problema Lupul Urias si Rau Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<stdlib.h>
struct muie{
	int t,a,b;
};
int comp(const void *a,const void *b){
	int *aa=(int *)a,*bb=(int *)b;
	int x=*aa, y=*bb;
	return x-y;
}
int main () {
	freopen("lupu.in","r",stdin);
	freopen("lupu.out","w",stdout);
	int n,x,l,i,act,max;
	long long s=0;
	muie v[100000];
	scanf("%d%d%d",&n,&x,&l);
	for(i=0;i<n;++i){
		scanf("%d%d",&v[i].a,&v[i].b);
		v[i].t=(x-v[i].a)/l;
	}
	qsort(v,n,sizeof(v[0]),comp);
	act=v[n-1].t;
	for(i=n-1;i>=0;){
		max=-1;
		while(v[i].t==act){
			if(v[i].b>max&&i>=0)
				max=v[i].b;
			--i;
		}
		act=v[i].t;
		s+=max;
	}
	printf("%lld\n",s);
	return 0;
}