fork download
  1. /*
  2. * @Author: hungeazy
  3. * @Date: 2024-12-07 11:29:27
  4. * @Last Modified by: hungeazy
  5. * @Last Modified time: 2024-12-07 11:36:35
  6. */
  7. #include <bits/stdc++.h>
  8. #include <ext/pb_ds/assoc_container.hpp>
  9. #include <ext/pb_ds/tree_policy.hpp>
  10. // #pragma GCC optimize("O3")
  11. // #pragma GCC optimize("unroll-loops")
  12. // #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
  13. using namespace std;
  14. using namespace __gnu_pbds;
  15. #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  16. #define int long long
  17. #define ll long long
  18. #define ull unsigned long long
  19. #define sz(x) x.size()
  20. #define sqr(x) (1LL * (x) * (x))
  21. #define all(x) x.begin(), x.end()
  22. #define fill(f,x) memset(f,x,sizeof(f))
  23. #define FOR(i,l,r) for(int i=l;i<=r;i++)
  24. #define FOD(i,r,l) for(int i=r;i>=l;i--)
  25. #define debug(x) cout << #x << " = " << x << '\n'
  26. #define ii pair<int,int>
  27. #define iii pair<int,ii>
  28. #define di pair<ii,ii>
  29. #define vi vector<int>
  30. #define vii vector<ii>
  31. #define mii map<int,int>
  32. #define fi first
  33. #define se second
  34. #define pb push_back
  35. #define MOD 1000000007
  36. #define __lcm(a,b) (1ll * ((a) / __gcd((a), (b))) * (b))
  37. #define YES cout << "YES\n"
  38. #define NO cout << "NO\n"
  39. #define MASK(i) (1LL << (i))
  40. #define c_bit(i) __builtin_popcountll(i)
  41. #define BIT(x,i) ((x) & MASK(i))
  42. #define SET_ON(x,i) ((x) | MASK(i))
  43. #define SET_OFF(x,i) ((x) & ~MASK(i))
  44. #define oo 1e18
  45. #define name "SSEQ"
  46. #define endl '\n'
  47. #define time() cerr << endl << "-------------Time:" << 1000.0 * clock() / CLOCKS_PER_SEC << "ms.";
  48. template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return true; }; return false; }
  49. template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return true; }; return false; }
  50. template <class T> using ordered_set = tree <T, null_type, less_equal <T>, rb_tree_tag,tree_order_statistics_node_update>;
  51. const int N = (int)1e6+10;
  52. int n;
  53. iii a[N];
  54.  
  55. namespace hungeazy {
  56.  
  57. vi g[N];
  58. int st[N<<2],lazy[N<<2];
  59.  
  60. void down(int id)
  61. {
  62. if (!lazy[id]) return;
  63. int &k = lazy[id];
  64. st[id<<1] += k;
  65. st[id<<1|1] += k;
  66. lazy[id<<1] += k;
  67. lazy[id<<1|1] += k;
  68. k = 0;
  69. }
  70.  
  71. void update(int id, int l, int r, int u, int v, int val)
  72. {
  73. if (l > v or r < u) return;
  74. if (l >= u and r <= v)
  75. {
  76. st[id] += val;
  77. lazy[id] += val;
  78. return;
  79. }
  80. int mid = (l+r)>>1; down(id);
  81. update(id<<1,l,mid,u,v,val);
  82. update(id<<1|1,mid+1,r,u,v,val);
  83. st[id] = max(st[id<<1],st[id<<1|1]);
  84. }
  85.  
  86. int get(int id, int l, int r, int u, int v)
  87. {
  88. if (l > v or r < u) return -oo;
  89. if (l >= u and r <= v) return st[id];
  90. int mid = (l+r)>>1; down(id);
  91. return max(get(id<<1,l,mid,u,v),get(id<<1|1,mid+1,r,u,v));
  92. }
  93.  
  94. void solve(void)
  95. {
  96. vi v;
  97. FOR(i,1,n) v.pb(a[i].fi), v.pb(a[i].se.fi);
  98. sort(all(v));
  99. v.erase(unique(all(v)),v.end());
  100. int len = v.size();
  101. FOR(i,1,n)
  102. {
  103. int x = lower_bound(all(v),a[i].se.fi)-v.begin()+1;
  104. g[x].pb(i);
  105. }
  106. int ans = 0;
  107. FOR(i,1,len)
  108. {
  109. for (int x : g[i])
  110. {
  111. int y = lower_bound(all(v),a[x].fi)-v.begin()+1;
  112. update(1,1,len,1,y,a[x].se.se);
  113. }
  114. int cur = get(1,1,len,1,i);
  115. maximize(ans,cur);
  116. }
  117. cout << ans;
  118. }
  119.  
  120. }
  121.  
  122. signed main()
  123. {
  124. fast;
  125. if (fopen(name".inp","r"))
  126. {
  127. freopen(name".inp","r",stdin);
  128. freopen(name".out","w",stdout);
  129. }
  130. cin >> n;
  131. FOR(i,1,n) cin >> a[i].fi >> a[i].se.fi >> a[i].se.se;
  132. hungeazy::solve();
  133. time();
  134. return 0;
  135. }
  136. // ██░ ██ █ ██ ███▄ █ ▄████
  137. //▓██░ ██▒ ██ ▓██▒ ██ ▀█ █ ██▒ ▀█▒
  138. //▒██▀▀██░▓██ ▒██░▓██ ▀█ ██▒▒██░▄▄▄░
  139. //░▓█ ░██ ▓▓█ ░██░▓██▒ ▐▌██▒░▓█ ██▓
  140. //░▓█▒░██▓▒▒█████▓ ▒██░ ▓██░░▒▓███▀▒
  141. // ▒ ░░▒░▒░▒▓▒ ▒ ▒ ░ ▒░ ▒ ▒ ░▒ ▒
  142. // ▒ ░▒░ ░░░▒░ ░ ░ ░ ░░ ░ ▒░ ░ ░
  143. // ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░
  144. // ░ ░ ░ ░ ░ ░
  145.  
Success #stdin #stdout #stderr 0.01s 28356KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
-------------Time:9.883ms.