Cod sursa(job #137385)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 17 februarie 2008 11:53:03
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 5-8 Marime 0.99 kb
#include<stdio.h>  
#include<stdlib.h>  
#include<algorithm>
#define N 50010  
using namespace std;
struct interval{  
    int a,b;  
};interval v[N];  
   
int compar(const void*x,const void*y){  
	interval *aa=(interval *)x,*bb=(interval *)y;  
	if (aa->a<bb->a)  
		return -1;  
	if (aa->a>bb->a)  
		return 1;  
	if (aa->b>bb->b)  
		return 1;  
	if (aa->b<bb->b)  
		return -1;  
	return 0;  
}  

int functie (interval i,interval j){
    return i.a<j.a;
}

int main(){  
	int n,i,s=0,t,j,l,x;  
	int ult,incep;  
	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);  
	}  
	//sort(v+0,v+n-1,functie);  
	qsort(v,n,sizeof(v[0]),compar);
	x=-20000000;
	l=0;  
	for (i=0;i<n;++i){  
		if (v[i].a>=x){
			l+=v[i].b-v[i].a;
			x=v[i].b;
		}
		else{
			if (v[i].b<=x);
			else{
				l+=v[i].b-x;
					x=v[i].b;
				}
		}  
	}  
	printf("%d\n",l);
	return 0;  
}