Pagini recente » Cod sursa (job #1917215) | Cod sursa (job #3238352) | Cod sursa (job #690367) | Cod sursa (job #2801973) | Cod sursa (job #2740454)
#include <bits/stdc++.h>
using namespace std;
#define all(c) (c).begin(), (c).end()
#define pb push_back
typedef long long ll;
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;
bool mycmp(const ii& a, const ii& b) {
return a.first < b.first || (a.first == b.first and a.second < b.second);
}
struct cmp {
bool operator() (const ii& a, const ii &b) const {
return a.first < b.first;
}
};
int main() {
std::ios::sync_with_stdio(false); cin.tie(NULL);
ifstream in;
ofstream out;
in.open("heavymetal.in", ios::in);
out.open("heavymetal.in", ios::out);
int n; in >> n;
vii a(n);
for(int i = 0; i < n; i++)
in >> a[i].first >> a[i].second;
sort(all(a), mycmp);
int ans = 0;
int prev = 0;
set<ii, cmp> toAdd;
for(int i = 0; i < n; i++) {
while(!toAdd.empty()) {
ii v = *toAdd.begin();
if(v.first <= a[i].first) {
prev = max(prev, v.second);
toAdd.erase(v);
}
else break;
}
int val = prev+a[i].second-a[i].first;
ans = max(ans, val);
toAdd.insert({a[i].second, val});
}
out << ans << "\n";
return 0;
}