Untitled
unknown
plain_text
5 months ago
4.3 kB
3
Indexable
#include <bits/stdc++.h> //───▐▀▄──────▄▀▌───▄▄▄▄▄▄▄ #define ll long long //───▌▒▒▀▄▄▄▄▀▒▒▐▄▀▀▒██▒██▒▀▀▄•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define f first //──▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define s second //──▌▒▒▒▒▒▒▒▒▒▒▒▒▒▄▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define pb push_back //▀█▒▒█▌▒▒█▒▒▐█▒▒▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▌•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define ub upper_bound //▀▌▒▒▒▒▒▀▒▀▒▒▒▒▒▀▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐ ▄▄•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define lb lower_bound //▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄█▒█•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define np next_permutation//▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▀•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define us unordered_set //──▐▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▌•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define cont continue //────▀▄▄▀▀▀▀▄▄▀▀▀▀▀▀▄▄▀▀▀▀▀▀▄▄▀•.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ •.,¸,.•*`•.,¸¸,.•*¯ #define IOS ios_base::sync_with_stdio(0),cin.tie(0) #define INF INFINITY #define ull unsigned long long #define maxel(begin, end) *std::max_element(begin, end) #define minel(begin, end) *std::min_element(begin, end) using namespace std; //* fin fin fin *// //* fin fin fin *// //* fin fin fin *// //* fin fin fin *// //* travske skot *// ll MAXN = 4*1e5; struct node { ll l, r, x; }; vector<ll> t(MAXN, 0); vector<ll> a(MAXN, 0); vector<bool> marked(MAXN, 0); void push(ll v, ll tl, ll tr) { if (a[v] == 0) return; if (tl != tr){ a[v * 2] = a[v]; a[v * 2 + 1] = a[v]; } t[v] = a[v]; a[v] = 0; } ll check(ll v, ll tl, ll tr, ll l, ll r) { push(v, tl, tr); if (r < tl || tr < l) { return LLONG_MAX; } if (l <= tl && tr <= r) { return t[v]; } ll tm = (tl + tr) / 2; return min(check(v * 2, tl, tm, l, r), check(v * 2 + 1, tm + 1, tr, l, r)); } void upd(ll v, ll tl, ll tr, ll l, ll r, ll x) { push(v, tl, tr); if (r < tl || tr < l) return; if (l <= tl && tr <= r) { a[v] = x; push(v, tl, tr); } else { ll tm = (tl + tr) / 2; upd(2 * v, tl, tm, l, r, x); upd(2 * v + 1, tm + 1, tr, l, r, x); t[v] = min(t[v * 2], t[v * 2 + 1]); } } int main() { /*freopen("rmq.in", "r", stdin); freopen("rmq.out", "w", stdout);*/ IOS; ll n, m; cin >> n >> m; vector<pair<ll, pair<ll, ll>>> q; for (int i = 0; i < m; i++){ int adil1, adil2, adil3; cin >> adil1 >> adil2 >> adil3; q.pb({adil3, {adil1, adil2}}); } sort(q.begin(), q.end()); for (int i = 0; i < q.size(); i++) upd(1, 1, n, q[i].s.f, q[i].s.s, q[i].f); for (int i = 0; i < q.size(); i++) { if (check(1, 1, n, q[i].s.f, q[i].s.s) == q[i].f) { continue; } else { cout << "inconsistent" << endl; return 0; } } cout << "consistent\n"; for (int i = 1; i <= n; i++) cout << check(1, 1, n, i, i) << ' '; //cout << q[0].s.f; }
Editor is loading...
Leave a Comment