Pagini recente » Cod sursa (job #549743) | Cod sursa (job #1337807) | Cod sursa (job #863945) | Cod sursa (job #1454071) | Cod sursa (job #520935)
Cod sursa(job #520935)
#include<stdio.h>
#include<stdlib.h>
struct bob
{int a,b;};
int comp(const void *a,const void*b)
{
bob *x,*y;
x=(bob*)a;
y=(bob*)b;
if(x->b-y->b==0)
return 0;
if(x->b-y->b>0)
return 1;
return -1;
}
int c[10010];
bob v[100010];
int main()
{
freopen("heavymetal.in","r",stdin);
freopen("heavymetal.out","w",stdout);
int n,i,gasit,nr=0;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d%d",&v[i].a,&v[i].b);
qsort(v+1,n,sizeof(v[0]),comp);
for(i=1;i<=v[n].b;++i)
{
c[i]=c[i-1];
gasit=0;
while(!gasit)
{
if(v[++nr].b==i&&v[nr].b-v[nr].a+c[v[nr].a]>c[i])
{
c[i]=v[nr].b-v[nr].a+c[v[nr].a];
gasit=0;
}
else
if(v[nr].b>i)
{
--nr;
break;
}
}
}
printf("%d\n",c[v[n].b]);
return 0;
}