Submission #1058410

#TimeUsernameProblemLanguageResultExecution timeMemory
1058410vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
0 / 100
3028 ms59472 KiB
#include <bits/stdc++.h> #ifdef LOCAL #include "/home/trcmai/code/tools.h" #define debug(x...) cerr << "\e[91m"<<__func__<<":"<<__LINE__<<" [" << #x << "] = ["; _print(x); cerr << "\e[39m" << endl; #else #define debug(x...) #endif using namespace std; #define all(a) a.begin(), a.end() #define ll long long #define endl '\n' const int N = 1e6 + 6, LOG = 27, MOD = 1e9 + 7; const ll INF = 1e18; int n,q; ll a[N],st[4*N]; void build(int i,int l,int r){ if(l == r){st[i] = a[l]; return;} int m = (r+l) >> 1; build(2*i,l,m); build(2*i+1,m+1,r); st[i] = max(st[2*i],st[2*i+1]); } ll get(int i,int l,int r,int ql,int qr){ if(l > qr || r < ql) return 0; if(ql <= l && r <= qr) return st[i]; int m = (r+l) >> 1; return max(get(2*i,l,m,ql,qr),get(2*i+1,m+1,r,ql,qr)); } signed main() { cin.tie(0)->sync_with_stdio(0); auto solver=[&](){ cin>>n>>q; for(int i = 1;i <= n;++i) cin>>a[i]; build(1,1,n); while(q--){ int l,r,k; cin>>l>>r>>k; bool res = true; for(int i = l + 1;i <= r;++i){ ll mx = get(1,1,n,l,i - 1); if(mx < a[i]) continue; if(mx + a[i] > k){ res = false; break; } } cout<<res<<endl; } }; int t = 1; // cin>>t; while (t--) solver(); }
#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...