Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #pragma GCC optimize("-Ofast")
- #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native")
- #pragma GCC optimize("-ffast-math")
- #pragma GCC optimize("-funroll-loops")
- #pragma GCC optimize("-funroll-all-loops,-fpeel-loops,-funswitch-loops")
- #define IO ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
- const long long MOD = 1e9 + 7, OO = 1e18;
- const double PI = acos(-1);
- const int N = 2e6 + 5;
- const int dx[4] = {0, 0, 1, -1};
- const int dy[4] = {1, -1, 0, 0};
- struct query {
- long long l, r, c;
- };
- long long n, q, parent[N], ans[N];
- query a[N];
- void init() {
- for (long long i = 1; i < N; i++)parent[i] = i;
- }
- long long findLeader(long long i) {
- if (parent[i] == i)return i;
- return parent[i] = findLeader(parent[i]);
- }
- int main() {
- IO
- init();
- cin >> n >> q;
- for (long long i = 1; i <= q; i++) {
- cin >> a[i].l >> a[i].r >> a[i].c;
- }
- for (long long i = q; i >= 1; i--) {
- for (long long v = findLeader(a[i].l); v <= a[i].r; v = findLeader(v)) {
- ans[v] = a[i].c;
- parent[v] = v + 1;
- }
- }
- for (long long i = 1; i <= n; i++)cout << ans[i] << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement