Submission #1285598

#TimeUsernameProblemLanguageResultExecution timeMemory
1285598jcelinHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
100 / 100
1174 ms77380 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+5, off = 1048576; int n, q, a[maxn], l[maxn], r[maxn], k[maxn], in[maxn], prosli[maxn], ans[maxn], T[off * 2 + 5]; vector <int> v, d[maxn]; int comp (int x, int y){ if (l[x] > l[y]) return 1; return 0; } int query (int x, int y, int pos, int low, int high){ if (low >= x and high <= y) return T[pos]; if (low > y or high < x) return 0; int mid = (low + high) / 2; return max(query(x, y, pos * 2, low, mid), query(x, y, pos * 2 + 1, mid + 1, high)); } void update (int pos, int val){ pos += off; T[pos] = val; pos = pos / 2; while (pos > 0){ T[pos] = max(T[pos * 2], T[pos * 2 + 1]); pos = pos / 2; } } void dodaj (int maxi, int mini){ for (int i = maxi; i >= mini; i--){ for (int j = 0; j < d[i].size(); j++) update(d[i][j], a[d[i][j]] + a[prosli[d[i][j]]]); } } int main (void){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> q; for (int i = 0; i < n; i++){ cin >> a[i]; while (v.size() > 0 and a[v.back()] <= a[i]) v.pop_back(); if (v.size() > 0){ prosli[i] = v.back(); d[prosli[i]].push_back(i); } else prosli[i] = -1; v.push_back(i); } for (int i = 0; i < q; i++){ cin >> l[i] >> r[i] >> k[i]; l[i]--, r[i]--; in[i] = i; } sort(in, in + q, comp); int bio = n - 1; for (int j = 0; j < q; j++){ int i = in[j]; dodaj(bio, l[i]); bio = l[i] - 1; if (query(l[i], r[i], 1, 0, off - 1) > k[i]) ans[i] = 0; else ans[i] = 1; } for (int i = 0; i < q; i++) cout << ans[i] << "\n"; return 0; }
#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...