Untitled
unknown
plain_text
a year ago
4.3 kB
5
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