This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define pb push_back
#define sz(v) v.size()
#define in insert
#define ld double
#define all(v) v.begin(),v.end()
#define ent endl
#define S second
#define F first
#define pii pair <int, int>
//#define int long long
/*#pragma optimize ("g",on)
#pragma GCC optimize ("inline")
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("03")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native")
#pragma comment(linker, "/stack:200000000")*/
using namespace std;
//const int INF = 1e18 + 123;
const int N = 1e6 + 123;
const int mod = 998244353;
const double PI = 3.1415926536;
const double eps = 1e-20;
int dx[4] = {0, 1, 0, -1};
int dy[4] = {-1, 0, 1, 0};
void speed(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
}
int n,m;
int a[N];
int pref[N];
void solve(){
cin >> n >> m;
for(int i = 1; i <= n; ++i){
cin >> a[i];
}
if(n <= 5000 && m <= 5000){
while(m --){
int l,r,k;
cin >> l >> r >> k;
int b[r-l+10];
for(int i = 1; i <= r-l+1; ++i){
b[i] = a[i+l-1];
}
multiset <int> st;
int ok = 1;
for(int i = 1; i <= r-l+1; ++i){
if(st.empty()){
st.insert(b[i]);
continue;
}
if(*st.rbegin() > b[i] && *st.rbegin() + b[i] > k){
ok = 0;
break;
}
st.insert(b[i]);
}
cout << ok << ent;
}
} else {
for(int i = 1; i <= n; i++){
if(a[i] < a[i - 1]) {
pref[i] = i;
} else {
pref[i] = pref[i - 1];
}
}
while(m--){
int l, r, k;
cin >> l >> r >> k;
cout << (pref[r] <= l) << ent;
}
}
}
signed main() {
speed();
int tt = 1;
//cin >> tt;
while(tt --){
solve();
cout << ent;
}
}
# | 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... |