Pagini recente » Cod sursa (job #919669) | Cod sursa (job #2043616) | Cod sursa (job #2472888) | Cod sursa (job #2588327) | Cod sursa (job #522221)
Cod sursa(job #522221)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct formatie{ int inc; int sf;};
formatie f[100010];
int n,t[100010];
int ma;
void read()
{
int i;
freopen("heavymetal.in","r", stdin);
freopen("heavymetal.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d %d",&f[i].inc,&f[i].sf);
}
bool cmp (formatie a,formatie b)
{
return a.sf<b.sf;
}
int maxx(int a,int b)
{
if(a>b)
return a;
else
return b;
}
void prelucrare()
{
int last,i;
ma=f[n].sf;
last=1;
for(i=1;i<=ma;++i)
{
t[i]=t[i-1];
while(f[last].sf==i)
{
t[i]=maxx(t[i],t[f[last].inc]+i-f[last].inc);
last++;
}
}
}
int main()
{
read();
sort(f+1,f+n+1,cmp);
prelucrare();
printf("%d\n",t[ma]);
}