Cod sursa(job #149115)

Utilizator hadesgamesTache Alexandru hadesgames Data 5 martie 2008 12:43:46
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>
struct ceva
{
	int x,y;
};
ceva a[100005];
int compare(const void *a,const void *b)
{
	ceva *aa=(ceva*)a;
	ceva *bb=(ceva*)b;
	if (aa->y>bb->y)
		return -1;
	if (aa->y<bb->y)
		return 1;
	if (aa->x>bb->x)
		return -1;
	if (aa->x<bb->x)
		return 1;
	return 0;
}
int main()
{
	FILE *in,*out;
	int i,y,n,nr;
	in=fopen("heavymetal.in","r");
	out=fopen("heavymetal.out","w");
	fscanf(in,"%d",&n);
	for (i=1;i<=n;i++)
	{
		fscanf(in,"%d%d",&a[i].x,&a[i].y);
	}
	qsort(a+1,n,sizeof(a[1]),compare);
	nr=a[1].y-a[1].x;
	y=a[1].x;
	for (i=2;i<=n;i++)
	{
		if (a[i].y<=y)
		{
			nr+=a[i].y-a[i].x;
			y=a[i].x;
		}
	}
	fprintf(out,"%d\n",nr);
	fclose(in);
	fclose(out);
	return 0;
}