Pagini recente » Cod sursa (job #629288) | Cod sursa (job #2791410) | Cod sursa (job #2614404) | Cod sursa (job #2772515) | Cod sursa (job #154242)
Cod sursa(job #154242)
#include<stdio.h>
#include<stdlib.h>
long int n,i,s,min;
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;
if (x.b<y.b) return -1;
return 0;
}
int main()
{
interval v[10000];
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
scanf("%ld",&n);
for (i=0; i<n; i++) {scanf("%ld%ld",&v[i].a,&v[i].b);}
qsort(v,n,sizeof(v[0]),compar);
min=v[0].b;
s=v[0].b-v[0].a;
for (i=1; i<n; i++)
{
if (min<=v[i].a)
{
min=v[i].b;
s=s+v[i].b-v[i].a;
}
}
printf("%ld",s);
}