제출 #1094708

#제출 시각아이디문제언어결과실행 시간메모리
1094708stdfloatHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
77 / 100
3017 ms43860 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define sz(v) (int)(v).size() #define all(v) (v).begin(), v.end() #define ff first #define ss second #define pii pair<int, int> int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; cin >> n >> q; vector<int> a(n); for (auto &i : a) cin >> i; int sz = sqrt(n); while (sz * sz < n) sz++; while (sz * sz > n) sz--; vector<int> b = a, v((n - 1) / sz + 1); for (int i = 0; i < sz(v); i++) { int mx = 0; for (int j = i * sz; j < min(n, (i + 1) * sz); j++) { if (a[j] < mx) v[i] = max(v[i], a[j] + mx); mx = max(mx, a[j]); } // cout << i << ' ' << v[i] << ' ' << i * sz << ' ' << min(n, (i + 1) * sz) - 1 << '\n'; sort(b.begin() + i * sz, b.begin() + min(n, (i + 1) * sz)); } // cout << "sz " << sz << endl; while (q--) { int l, r, k; cin >> l >> r >> k; l--; r--; if (l / sz == r / sz) { int mx = 0; bool tr = true; for (int i = l; i <= r && tr; i++) { tr = (a[i] >= mx || a[i] + mx <= k); mx = max(mx, a[i]); } cout << tr << '\n'; continue; } int mx = 0; bool tr = true; for (int i = l; i < (l / sz + 1) * sz && tr; i++) { tr = (a[i] >= mx || a[i] + mx <= k); mx = max(mx, a[i]); } // cout << tr << ' ' << l << ' ' << (l / sz + 1) * sz << endl; if (!tr) { cout << "0\n"; continue; } for (int i = l / sz + 1; i < r / sz && tr; i++) { int x = i * sz, y = (i + 1) * sz - 1; tr = (max(v[i], (mx > b[x] ? mx + *--lower_bound(b.begin() + x, b.begin() + y + 1, mx) : 0)) <= k); mx = max(mx, b[y]); } int x = r / sz * sz; for (int i = x; i <= r && tr; i++) { tr = (a[i] >= mx || a[i] + mx <= k); mx = max(mx, a[i]); } // cout << x << ' ' << mx << ' ' << mx2 << ' ' << tr << endl; cout << tr << '\n'; } }
#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...