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 F first
#define S second
#define ALL(a) a.begin() , a.end()
#ifndef ONLINE_JUDGE
#define OK cout << __LINE__ << "| "<< "---------------------------OK-----------------------" << endl;
#define deb(x) cout << __LINE__ << "| "<< #x << " = " << x << endl;
#else
#define OK
#define deb(x)
#endif
typedef long double ld;
typedef long long ll;
using namespace std ;
const ll N = 1e6 + 7 ;
const ll INF = 1e9;
const ll mod = 1e9 + 7 ;
const double eps = 1e-9 ;
const int dx[] = { 0 , 0 , 1 , -1, 1 , -1 , 1 , -1} , dy[] = {1 , -1 , 0 , 0 , 1 , 1, -1 , -1} ;
int n , q, a[N] , ans[N];
struct query{
int l, k , id;
};
vector<query> vec[N];
int t[N];
void upd(int v ,int mx){
v = N - v;
while(v < N){
t[v] = max(t[v] , mx);
v += v & -v;
}
}
int get(int v){
v = N - v;
int res = 0;
while(v){
res = max(res , t[v]);
v -= v & -v;
}
return res;
}
void test_solve(int test_index){
cin >> n >> q;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i<= q;i++){
int l ,r ,k;
cin >> l >> r >> k;
vec[r].push_back({l ,k ,i });
}
stack<pair<int,int>> st;
for(int i = 1; i <=n; i++){
while(st.size() and st.top().F <= a[i])
st.pop();
if(st.size())
upd(st.top().S , st.top().F + a[i]);
for(auto[l , k , id] : vec[i]){
if(get(l) <= k)
ans[id] = 1;
}
st.push({a[i] , i});
}
for(int i = 1; i<= q;i++)
cout << ans[i] << endl;
}
signed main(){
ios_base::sync_with_stdio(false) ;
cin.tie(0) ;
cout.tie(0);
int test = 1;
//cin >> test ;
for(int i = 1 ; i <= test ; i++){
// cout << "Case " << i << ": " ;
test_solve(i) ;
}
return 0;
}
# | 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... |