Advertisement
Mahmoud_Hawara

Untitled

Apr 13th, 2022
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #pragma GCC optimize("-Ofast")
  4. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native")
  5. #pragma GCC optimize("-ffast-math")
  6. #pragma GCC optimize("-funroll-loops")
  7. #pragma GCC optimize("-funroll-all-loops,-fpeel-loops,-funswitch-loops")
  8. #define IO ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  9. const long long MOD = 1e9 + 7, OO = 1e18;
  10. const double PI = acos(-1);
  11. const int N = 2e6 + 5;
  12. const int dx[4] = {0, 0, 1, -1};
  13. const int dy[4] = {1, -1, 0, 0};
  14.  
  15. struct query {
  16.     long long l, r, c;
  17. };
  18.  
  19. long long n, q, parent[N], ans[N];
  20. query a[N];
  21.  
  22. void init() {
  23.     for (long long i = 1; i < N; i++)parent[i] = i;
  24. }
  25.  
  26. long long findLeader(long long i) {
  27.     if (parent[i] == i)return i;
  28.     return parent[i] = findLeader(parent[i]);
  29. }
  30.  
  31. int main() {
  32.     IO
  33.     init();
  34.     cin >> n >> q;
  35.     for (long long i = 1; i <= q; i++) {
  36.         cin >> a[i].l >> a[i].r >> a[i].c;
  37.     }
  38.     for (long long i = q; i >= 1; i--) {
  39.         for (long long v = findLeader(a[i].l); v <= a[i].r; v = findLeader(v)) {
  40.             ans[v] = a[i].c;
  41.             parent[v] = v + 1;
  42.         }
  43.     }
  44.     for (long long i = 1; i <= n; i++)cout << ans[i] << '\n';
  45.     return 0;
  46. }
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement