#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e5 + 5;
template<typename T>
void maximize(T& a, const T& b) {
if (b < a) return;
a = b;
}
struct project {
int l, r; ll w;
bool operator<(const project& other) const {
return (r < other.r);
}
};
int n;
project a[N];
ll dp[N]; // dp[i] = Lợi nhuận lớn nhất đạt được khi xét i dự án đầu tiên
// Tìm vị trí i lớn nhất sao cho a[i].r < x
int binSearch(int l, int r, int x) {
int ans = -1;
while (l <= r) {
int mid = (l + r) >> 1;
if (a[mid].r < x) {
ans = mid;
l = mid + 1;
}
else {
r = mid - 1;
}
}
return ans;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i].l >> a[i].r >> a[i].w;
}
// sort tăng dần theo thời điểm kết thúc của các dự án
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
// không chọn dự án thứ i
dp[i] = dp[i - 1];
// chỉ chọn dự án thứ i
maximize(dp[i], a[i].w);
// chọn dự án thứ i cùng với một số dự án khác ở trước
int prev_i = binSearch(1, i - 1, a[i].l);
if (prev_i != -1) maximize(dp[i], dp[prev_i] + a[i].w);
}
cout << dp[n] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7IAoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBtYXhpbWl6ZShUJiBhLCBjb25zdCBUJiBiKSB7CglpZiAoYiA8IGEpIHJldHVybjsgIAoJYSA9IGI7IAp9CgpzdHJ1Y3QgcHJvamVjdCB7CglpbnQgbCwgcjsgbGwgdzsgCglib29sIG9wZXJhdG9yPChjb25zdCBwcm9qZWN0JiBvdGhlcikgY29uc3QgewoJCXJldHVybiAociA8IG90aGVyLnIpOyAKCX0KfTsgCgppbnQgbjsgCnByb2plY3QgYVtOXTsgCgpsbCBkcFtOXTsgLy8gZHBbaV0gPSBM4bujaSBuaHXhuq1uIGzhu5tuIG5o4bqldCDEkeG6oXQgxJHGsOG7o2Mga2hpIHjDqXQgaSBk4buxIMOhbiDEkeG6p3UgdGnDqm4KCi8vIFTDrG0gduG7iyB0csOtIGkgbOG7m24gbmjhuqV0IHNhbyBjaG8gYVtpXS5yIDwgeAppbnQgYmluU2VhcmNoKGludCBsLCBpbnQgciwgaW50IHgpIHsKCWludCBhbnMgPSAtMTsgCgl3aGlsZSAobCA8PSByKSB7CgkJaW50IG1pZCA9IChsICsgcikgPj4gMTsgCgkJaWYgKGFbbWlkXS5yIDwgeCkgewoJCQlhbnMgPSBtaWQ7ICAgCgkJCWwgPSBtaWQgKyAxOyAKCQl9CgkJZWxzZSB7CgkJCXIgPSBtaWQgLSAxOyAKCQl9Cgl9CglyZXR1cm4gYW5zOyAKfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgIAkKCWNpbiA+PiBuOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCWNpbiA+PiBhW2ldLmwgPj4gYVtpXS5yID4+IGFbaV0udzsgCgl9CgoJLy8gc29ydCB0xINuZyBk4bqnbiB0aGVvIHRo4budaSDEkWnhu4NtIGvhur90IHRow7pjIGPhu6dhIGPDoWMgZOG7sSDDoW4gCglzb3J0KGEgKyAxLCBhICsgbiArIDEpOyAgCgoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJLy8ga2jDtG5nIGNo4buNbiBk4buxIMOhbiB0aOG7qSBpIAoJCWRwW2ldID0gZHBbaSAtIDFdOyAKCQkvLyBjaOG7iSBjaOG7jW4gZOG7sSDDoW4gdGjhu6kgaSAKCQltYXhpbWl6ZShkcFtpXSwgYVtpXS53KTsKCQkvLyBjaOG7jW4gZOG7sSDDoW4gdGjhu6kgaSBjw7luZyB24bubaSBt4buZdCBz4buRIGThu7Egw6FuIGtow6FjIOG7nyB0csaw4bubYyAgIAoJCWludCBwcmV2X2kgPSBiaW5TZWFyY2goMSwgaSAtIDEsIGFbaV0ubCk7CgkJaWYgKHByZXZfaSAhPSAtMSkgbWF4aW1pemUoZHBbaV0sIGRwW3ByZXZfaV0gKyBhW2ldLncpOyAgCgl9CgoJY291dCA8PCBkcFtuXSA8PCAnXG4nOyAKfQ==