Cod sursa(job #161551)

Utilizator lovelyanaAna Scutelnicu lovelyana Data 18 martie 2008 14:46:32
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
long i,n,s=0,v[100010];
	struct interval
	{
		long inceput,sfarsit;
	};
	 interval x[100010];
	int cmpf(interval a,interval b)
	{
		return a.sfarsit<=b.sfarsit;
	}
	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].inceput, &x[i].sfarsit);
		 sort(x + 1, x + n + 1, cmpf);
		 
		 for(i=1;i<n;i++){
			 if((x[i].sfarsit)<=(x[i+1].inceput))
				 s=s+(x[i].sfarsit-x[i].inceput);}
			s=s+(x[n].sfarsit-x[n].inceput);
			if (s==0){{
				for(i=1;i<=n;i++)
					v[i]=x[i].sfarsit-x[i].inceput;}
			for(i=1;i<=n;i++){
				if(v[i]>s)
					s=v[i];}}
		printf("%ld\n",s);
		return 0;
	}