Cod sursa(job #138877)

Utilizator za_wolfpalianos cristian za_wolf Data 19 februarie 2008 13:45:10
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#define NMAX 100001
long i,s,in,sf,a,j,k,l,n,m,q;
struct kkt
{
	long X,Y;
};
kkt x[NMAX];
int main()
{
	freopen("heavymetal.in","r",stdin);
	freopen("heavymetal.out","w",stdout);
	scanf("%ld",&n);
	for (i=1;i<=n;i++)
		scanf("%ld%ld",&x[i].X,&x[i].Y);
	a=1;
	while (a)
	{
		a=0;
		for (i=1;i<n;i++)
			if (x[i].X>x[i+1].X)
			{
				a=x[i].X;
				x[i].X=x[i+1].X;
				x[i+1].X=a;

				a=x[i].Y;
				x[i].Y=x[i+1].Y;
				x[i+1].Y=a;
				a=1;
			}
	}

	s=x[1].Y-x[1].X;
	in=x[1].X;
	sf=x[1].Y;
	for (i=1;i<=n;i++)
	{
		if (x[i].X>sf)
		{
			s+=x[i].Y-x[i].X;
			sf=x[i].Y;
		}
		else
		if (x[i].Y-x[i].X>x[i-1].Y-x[i-1].X)
		{
			sf=x[i].Y;
			s-=x[i-1].Y-x[i-1].X;
			s+=x[i].Y-x[i].X;
		}
	}

	printf("%ld\n",s);

	return 0;
}