제출 #1154469

#제출 시각아이디문제언어결과실행 시간메모리
1154469khangrlHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
202 ms12740 KiB
#include<bits/stdc++.h> #define ff first #define ss second #define int long long using namespace std; int n, q, a[100005], st[400005]; set <int> s[100005]; int consst(int pos, int l, int r){ if(l==r){ st[pos]=a[l]; return a[l]; } int mid=(l+r)/2; st[pos]=max(consst(pos*2+1, l, mid), consst(pos*2+2, mid+1, r)); return st[pos]; } int find(int pos, int l, int r, int lb, int rb){ if(lb<=l and rb>=r){ return st[pos]; } if(r<lb or l>rb){ return 0; } int mid=(l+r)/2; return max(find(pos*2+1, l, mid, lb, rb), find(pos*2+2, mid+1, r, lb, rb)); } signed main(){ cin>>n>>q; for(int i=0; i<n; i++){ cin>>a[i]; s[a[i]].insert(i); } consst(0, 0, n-1); while(q--){ int a, b, k; cin>>a>>b>>k; int mx=find(0, 0, n-1, a-1, b-1); auto l=s[mx].lower_bound(a); int mn=find(0, 0, n-1, *l+1, b-1); if(k>=mx+mn){ cout<<1<<endl; } else{ cout<<0<<endl; } } }
#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...