fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MaxN = 2e5 + 5;
  4. long long n, dp[MaxN];
  5. pair<pair<long long, long long>, long long> pr[MaxN];
  6. void input()
  7. {
  8. cin >> n;
  9. for (long long i=1; i<=n; i++)
  10. {
  11. cin >> pr[i].first.first >> pr[i].first.second >> pr[i].second;
  12. }
  13. }
  14. bool cmp(pair<pair<long long, long long>, long long> a, pair<pair<long long, long long>, long long> b)
  15. {
  16. return a.first.second < b.first.second;
  17. }
  18. void solve()
  19. {
  20. sort(pr+1,pr+n+1,cmp);
  21. for (long long i=1; i<=n; i++)
  22. {
  23. dp[i]=dp[i-1];
  24. long long pos = lower_bound(pr + 1, pr + n + 1, pr[i].first.first,
  25. [](pair<pair<long long,long long>, long long> x, long long value)
  26. {
  27. return x.first.second < value;
  28. }) - pr - 1;
  29. dp[i] = max(dp[i], dp[pos] + pr[i].second);
  30. }
  31. cout << dp[n];
  32. }
  33. int main()
  34. {
  35. ios_base::sync_with_stdio(0);
  36. cin.tie(0);
  37. input();
  38. solve();
  39. }
  40.  
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
Standard output is empty