Submission #1304839

#TimeUsernameProblemLanguageResultExecution timeMemory
1304839g4yuhgHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
77 ms6636 KiB
#include<bits/stdc++.h> typedef int ll; #define fi first #define se second #define pii pair<ll,ll> #define N 100005 #define LOG 18 #define endl '\n' using namespace std; bool ghuy4g; ll n, q; ll a[N], kq[N]; struct Qr { ll l, r, k, id; } qr[N]; struct Seg { ll l, r, val; } seg[N]; ll m = 0; ll st[4 * N], gh[N]; void update(ll id, ll l, ll r, ll i, ll v) { if (i > r || i < l) return; if (l == r) { st[id] = max(st[id], v); return; } ll mid = (l + r) / 2; update(id * 2, l, mid, i, v); update(id * 2 + 1, mid + 1, r, i, v); st[id] = max(st[id * 2], st[id * 2 + 1]); } ll get(ll id, ll l, ll r, ll L, ll R) { if (l > R || r < L) return 0; if (L <= l && r <= R) return st[id]; ll mid = (l + r) / 2; return max(get(id * 2, l, mid, L, R), get(id * 2 + 1, mid + 1, r, L, R)); } void pre() { vector<ll> st; for (int i = 1; i <= n; i ++) { while (st.size() && a[i] < a[st.back()]) { ll id = st.back(); st.pop_back(); seg[++ m] = {id, i, a[i] + a[id]}; } st.push_back(i); } sort(qr + 1, qr + 1 + q, [&](Qr A, Qr B) { return A.r < B.r; }); sort(seg + 1, seg + 1 + m, [&](Seg A, Seg B) { return A.r < B.r; }); for (int i = 1; i <= m; i ++) { cout << seg[i].l << " " << seg[i].r << " " << seg[i].val << endl; } ll cur = 1; for (int i = 1; i <= q; i ++) { while (cur <= m && seg[cur].r <= qr[i].r) { update(1, 1, n, seg[cur].l, seg[cur].val); cur ++ ; } kq[qr[i].id] = get(1, 1, n, qr[i].l, qr[i].r); } for (int i = 1; i <= q; i ++) { cout << (kq[i] <= gh[i]) << endl; } } bool klinh; signed main() { //freopen("qcsys.inp", "r", stdin); //freopen("qcsys.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> q; for (int i = 1; i <= n; i ++) { cin >> a[i]; } for (int i = 1; i <= q; i ++) { cin >> qr[i].l >> qr[i].r >> qr[i].k; gh[i] = qr[i].k; } pre(); cerr << fabs(&klinh - &ghuy4g) / double(1024 * 1024); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...