Submission #146257

#TimeUsernameProblemLanguageResultExecution timeMemory
146257YershHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
0 / 100
1344 ms27196 KiB
#include<bits/stdc++.h> #define NFS ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); #define fr first #define se second #define th third #define pb(v) push_back(v) #define mk(x, y) make_pair(x, y) #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; const int N = 1e6 + 7; const ll mod = 1e9 + 7; string en = "\n"; ll a[N], d[N]; pair <int, int> t[N * 4], ans; void build(int v, int tl, int tr) { if (tl == tr) { t[v].fr = a[tl]; return; } int tm = (tl + tr) / 2; build (v * 2, tl, tm); build (v * 2 + 1, tm + 1, tr); t[v].fr = t[v * 2].fr; t[v].se = max(t[v * 2].se, t[v * 2 + 1].fr); if (t[v * 2 + 1].fr >= t[v].fr) { t[v].se = t[v * 2].se; } } void get(int u, int tl, int tr, int l, int r) { if (l > tr || r < tl) { return; } if (tl >= l && tr <= r) { if (t[u].fr > ans.fr) { ans.fr = t[u].fr; ans.se = t[u].se; } else if (t[u].se > ans.se) { ans.se = t[u].se; } return; } int tm = (tl + tr) / 2; get(u * 2, tl, tm, l, r); get(u * 2 + 1, tm + 1, tr, l, r); } int main() { NFS; int n, m; cin >> n >> m; for (int i = 1; i <= n; i ++) { cin >> a[i]; } build(1, 1, n); for (int i = 1; i <= m; i ++) { int l, r, k; cin >> l >> r >> k; get(1, 1, n, l, r); if (ans.fr + ans.se > k) { cout << 0 << en; continue; } cout << 1 << en; ans.fr = 0; ans.se = 0; } 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...