Pagini recente » Cod sursa (job #697788) | Cod sursa (job #1539313) | Cod sursa (job #793984) | Cod sursa (job #148300) | Cod sursa (job #149068)
Cod sursa(job #149068)
#include<stdio.h>
#include<stdlib.h>
struct interval
{
int a,b,c;
};
interval v[100000];
int compar(const void *p,const void *q)
{
interval *pp=(interval*)p,*qq=(interval*)q;
interval u=*pp,w=*qq;
if(u.a<w.a)
return -1;
if(u.a>w.a)
return 1;
return w.b-u.b;
}
int main()
{
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
int n,i,x=1;
long long s=0;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d%d",&v[i].a,&v[i].b);
v[i].c=v[i].b-v[i].a;
}
qsort(v,n,sizeof(v[0]),compar);
for(i=0; i<n; i++)
{
//printf("%d %d\n",v[i].a,v[i].b);
if(v[i].a>=x)
{
s+=v[i].c;
if(v[i].b>x)
x=v[i].b;
}
}
printf("%lld\n",s);
return 0;
/*int compar(const void *p,const void *q)
{
interval *pp=(interval*)p,*qq=(interval*)q;
interval u=*pp,w=*qq;
if(u.c<w.c)
return 1;
if(u.c>w.c)
return -1;
if(u.a<w.a)
return 1;
if(u.a>w.a)
return -1;
return w.b-u.b;
}*/
}