Cod sursa(job #149071)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 5 martie 2008 12:02:15
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
#define N 100005
struct interval {
	int a,b;
};
int compar(const void *p,const void *q){
	interval *pp=(interval*)p, *qq=(interval*)q;
	interval x=*pp, y=*qq;
	if(x.a>y.a)
		return 1;
	else if(x.a==y.a && x.b<y.b)
		return 1;
	return 0;
}
int main(){
	int i,j,n,s=0,c=1,dr;
	interval v[N];
	freopen("heavymetal.in","r",stdin);
	freopen("heavymetal.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d%d",&v[i].a,&v[i].b);
	qsort(v,n,sizeof(v[0]),compar);
//	for(i=0;i<n;i++)
//		printf("%d %d\n",v[i].a,v[i].b);
	dr=v[0].b;
	s=v[0].b-v[0].a;
	for(i=1;i<n;i++)
		if(v[i].a>=dr) { c++; dr=v[i].b; s+=v[i].b-v[i].a; }
	printf("%d",s);
	return 0;
	fclose(stdout);
}