Pagini recente » Cod sursa (job #2913337) | Cod sursa (job #1124625) | Cod sursa (job #2249263) | Cod sursa (job #3289429) | Cod sursa (job #996617)
Cod sursa(job #996617)
#include <cassert>
#include <cstdio>
#include <algorithm>
using namespace std;
const int nmax=1000100;
int d[nmax];
struct q
{
int x,y;
}v[nmax/10];
bool comp(q a,q b)
{
return a.y<b.y;
}
int main()
{
int n=0,i=0,cnt=1;
assert(freopen("heavymetal.in","r",stdin));
assert(freopen("heavymetal.out","w",stdout));
assert(scanf("%d",&n));
for (i=1; i<=n; ++i)
assert(scanf("%d%d",&v[i].x,&v[i].y));
sort(v+1,v+n+1,comp);
n=v[n].y;
for (i=1; i<=n; ++i)
{
d[i]=d[i-1];
while (v[cnt].y==i)
{
d[i]=max(d[v[cnt].x]-v[cnt].x+v[cnt].y,d[i]);
++cnt;
}
}
printf("%d\n",d[n]);
return 0;
}