// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
#include <deque>
using namespace std;
#define int long long
const int N=1e6+5;
const int M=998244353;
const int LOG = 20;
int n , m , k , c , t=1 , q=1 , x , y , p[N];
int sg[LOG][N];
vector<int>a(N),b(N);
void makesg(){
for (int i=0;i<N;i++){
sg[0][i]=b[i];
}
for (int j=1;j<LOG;j++){
for (int i=(int)pow(2,j)-1;i<N;i++){
sg[j][i]=max(sg[j-1][i],sg[j-1][i-(int)pow(2,j-1)]);
}
}
}
int lr(int l,int r){
int x=log2(r-l);
return max(sg[x][r],sg[x][l+(int)pow(2,x)-1]);
}
void solve()
{
cin >> n >> m;
for (int i=0;i<n;i++){
cin >> a[i];
}
for (int i=0;i<n-1;i++){
b[i]=a[i+1]<a[i];
}
// for (int i=0;i<n-1;i++){
// cout << b[i] << " ";
// }
// cout << endl;
makesg();
// cout << lr(1,2) << endl;
for (int i=0;i<m;i++){
cin >> x >> y >> c;
if (x==y){
cout << 1 << endl;
continue;
}
if (lr(x-1,y-2)){
cout << 0 << endl;
}
else{
cout << 1 << endl;
}
}
}
signed main()
{
ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE
cin.tie(0), cout.tie(0);//DO NOT USE IN INTERACTIVE
cout << fixed<<setprecision(9);
// int t=1;
// cin >> t;
for (int _=1;_<=t;_++){
solve();
q++;
}
}
# | 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... |