#include<bits/stdc++.h>
#define ff first
#define ss second
#define int long long
using namespace std;
int n, m, a[100005], st[400005];
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;
for(int i=0; i<n; i++){
cin>>a[i];
}
consst(0, 0, n-1);
int q;
cin>>q;
while(q--){
int a, b, k;
cin>>a>>b>>k;
cout<<find(0, 0, n-1, a-1, b-1);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |