Submission #1058786

#TimeUsernameProblemLanguageResultExecution timeMemory
1058786vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
0 / 100
769 ms80920 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,jmp[N]; ll w[N]; vector<tuple<int,int,ll>>Q[N]; ll tr[4*N]; void update(int i,int l,int r,int pos,ll val){ if(l == r){ tr[i] = w[l]; return; } int m = (r+l) >> 1; if(pos <= m) update(2*i,l,m,pos,val); else update(2*i+1,m+1,r,pos,val); tr[i] = max(tr[2*i],tr[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 tr[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>>w[i]; jmp[i] = i - 1; while(jmp[i] && w[i] >= w[jmp[i]]) jmp[i] = jmp[jmp[i]]; } for(int i = 1;i <= q;++i){ int l,r; ll c; cin>>l>>r>>c; Q[r].emplace_back(i,l,c); } vector<bool>res(q + 1); for(int i = 1;i <= n;++i){ update(1,1,n,jmp[i],w[i] + w[jmp[i]]); for(auto [idx,l,c] : Q[i]) res[idx] = (get(1,1,n,l,i) <= c); } for(int i = 1;i <= q;++i) cout<<res[i]<<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...