Pagini recente » Cod sursa (job #2247773) | Cod sursa (job #1940148) | Cod sursa (job #652798) | Cod sursa (job #2676549) | Cod sursa (job #2227850)
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
ifstream fin ("heavymetal.in");
ofstream fout ("heavymetal.out");
const int Dim = 100001;
pair < int, int > A[Dim];
int n,ma,D[Dim];
int CB(int val, int dr);
bool cmp(pair<int, int > a, pair<int,int>b);
int main(){
fin >> n;
for ( int i = 1; i <= n; ++i)
fin >> A[i].first >> A[i].second;
sort(A+1,A+1+n,cmp);
for ( int i = 1; i <= n; ++i) {
D[i] = A[i].second - A[i].first;
D[i] += D[CB(A[i].first,i-1)];
ma = max(ma,D[i]);
}
fout << ma;
}
bool cmp(pair<int, int > a, pair<int,int>b) {
return a.second < b.second;
}
int CB(int val, int dr) {
int st = 1,mj,sol = 0;
while ( st <= dr ){
mj = ( st + dr )/2;
if ( A[mj].second > val)
dr = mj - 1;
else {
sol = mj;
st = mj + 1;
}
}
return sol;
}