Pagini recente » Cod sursa (job #1654336) | Cod sursa (job #2118441) | Cod sursa (job #624218) | Cod sursa (job #2865904) | Cod sursa (job #2498007)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Nmax 100001
using namespace std;
ifstream f("heavymetal.in");
ofstream o("heavymetal.out");
struct form{
int a,b;
}fo[Nmax];
bool cmp(form &f1,form &f2){
return f1.b < f2.b;
}
int i,j,n,dp[Nmax],t,s,d,m,g;
int main()
{
f >> n;
for(i=1;i<=n;++i)
f >> fo[i].a >> fo[i].b;
sort(fo+1,fo+n+1,cmp);
dp[1]=fo[1].b-fo[1].a;
for(i=2;i<=n;++i){
t=fo[i].b-fo[i].a;
dp[i]=dp[i-1];
s=1;
d=i;
g=(s+d)>>1;
while(s<=d){
m=(s+d)>>1;
if(fo[m].b<=fo[i].a){
s=m+1;
g=max(g,m);
}
else
d=m-1;
}
dp[i]=max(dp[i],dp[g]+t);
}
o << dp[n];
return 0;
}