제출 #499073

#제출 시각아이디문제언어결과실행 시간메모리
499073AbdurahmonHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
100 / 100
943 ms90064 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m;ll a[1000006],l[1000006],r[1000006],k[1000006],t[1000006]; vector<ll>as[1000006]; void add(int k,ll x) { while(k>0) { t[k]=max(t[k],x); k-=k&-k; } } ll get(int k) { ll s=0; while(k<=n) { s=max(s,t[k]); k+=k&-k; } return s; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>m; for(int c=1;c<=n;c++) { cin>>a[c]; } for(int c=1;c<=m;c++) { cin>>l[c]>>r[c]>>k[c];as[r[c]].push_back(c); } vector<ll>s; vector<bool>ans(m+1); for(int c=1;c<=n;c++) { while(s.size()&&a[s.back()]<=a[c]) { s.pop_back(); } ll x=(s.size()==0?0:s.back()); add(x,a[x]+a[c]); for (auto i:as[c]) { // cout<<i<<" "; ans[i]=(get(l[i])<=k[i]); } // cout<<"\n"; s.push_back(c); } for(int c=1;c<=m;c++) { cout<<ans[c]<<"\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...