#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct sugar
{
int st,ed,w;
}a[10010];
int n;
int main()
{
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++) scanf("%d%d%d",&a[i].st,&a[i].ed,&a[i].w);
for(int i = 1 ; i <= n ; i++)
for(int j = i + 1 ; j <= n ; j++)
if(a[i].st > a[j].st) swap(a[i],a[j]);//冒泡大法好
int ans = 1;
for(int i = 1 ; i <= n ; i++)
{
int k = 0;
for(int j = 1 ; j <= n ; j++) if(a[i].st >= a[j].ed) k = max(k,a[j].w);
a[i].w += k;
ans = max(ans,a[i].w);
}
printf("%d",ans);
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct xd
{
int l, r;
}x[1000005];
bool cmp(xd a, xd b)
{
return a.r < b.r;
}
int main()
{
int n, ans = 0;
cin>>n;
for (int i = 1; i <= n; i++)
scanf("%d%d", &x[i].l, &x[i].r);
sort (x + 1, x + n + 1, cmp);
int rr = 0;
for(int i = 1; i <= n; i++)
{
if(x[i].l >= rr)
{
ans ++;
rr = x[i].r;
}
}
cout<<ans;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long dp[1000005];
struct xd
{
int l, r, d;
}x[2333333];
bool cmp(xd a, xd b)
{
return a.r < b.r;
}
int main()
{
int n;
cin>>n;
for (int i = 1; i <= n; i++)
scanf("%d%d%d", &x[i].l, &x[i].r, &x[i].d);
sort (x + 1, x + n + 1, cmp);
for (int i = 1; i <= n; i++)
{
int l = 1, r = i, ans = 0;
while (r - l >= 0)
{
int mid = (l + r) >> 1;
if(x[mid].r <= x[i].l)
{
ans = mid;
l = mid + 1;
}
else
r = mid - 1;
}
dp[i] = max (dp[i - 1], dp[ans] + x[i].d);
}
cout<<dp[n];
return 0;
}