제출 #1349770

#제출 시각아이디문제언어결과실행 시간메모리
1349770coderg300711Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
47 / 100
3094 ms14048 KiB
#include "bits/stdc++.h"
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pii pair<int,int>
#define pll pair<long long,long long>
#define yes cout<<"Yes\n"
#define no cout<<"No\n"
#define pb push_back
#define sz(x) (int)(x).size()
#define rsz resize
#define ass assign
#define F(i,l,r) for(int i=(l);i<(r);++i)
typedef long long ll;
typedef unsigned long long ull;
typedef long double lld;
//template<typename T> using pqg = priority_queue<T, vector<T>, greater<T>>;
#define each(a,x) for(auto a:x)
#define FOR(i,a) for(int i=0;i<(a);i++)
#define ROF(i,a,b) for(int i=(b)-1;i>=(a);i--)
#define eb emplace_back
#define ft front()
#define V vector

#ifndef ONLINE_JUDGE
#define debug(x) cerr << #x <<" "; _print(x); cerr << endl;
#else
#define debug(x)
#endif

void _print(ll t) {cerr << t;}
void _print(int t) {cerr << t;}
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
void _print(lld t) {cerr << t;}
void _print(double t) {cerr << t;}
void _print(ull t) {cerr << t;}

template <class T, class V> void _print(pair <T, V> p);
template <class T> void _print(vector <T> v);
template <class T> void _print(set <T> v);
template <class T, class V> void _print(map <T, V> v);
template <class T> void _print(multiset <T> v);
template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.ff); cerr << ","; _print(p.ss); cerr << "}";}
template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}

//const int mod=;

void solve(){
int n,m;
cin>>n>>m;
V<ll> w(n+1);
ll mn=2e9+7;
F(i,1,n+1){
  cin>>w[i];
  mn=min(mn,w[i]);
}
V<int> ps(n+1,0);
F(i,1,n)ps[i]=ps[i-1]+(w[i]<=w[i+1]);
FOR(_,m){
int l,r;
ll k;
cin>>l>>r>>k;
if(l==r){
  cout<<"1\n";
  continue;
}
int sorted_pairs=ps[r-1]-ps[l-1];
if(sorted_pairs==r-l){
  cout<<"1\n";
  continue;
}
if(k<mn){
  cout<<"0\n";
  continue;
}
ll cur=w[l],mx=0;
bool can=1;
F(j,l+1,r+1){
  if(cur>w[j]){
    mx=max(mx,cur+w[j]);
    if(mx>k){
      can=0;
      break;
    }
  }else cur=w[j];
}
if(can)cout<<"1\n";
else cout<<"0\n";
}
}

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(nullptr);
  //  #ifndef ONLINE_JUDGE
    //  freopen("output.txt", "w", stdout);
      //freopen("input.txt", "r", stdin);
      //freopen("Error.txt", "w", stderr);
    //#endif 
    
    int tt=1;
    //cin>>tt;
    while(tt--)solve();

    return 0;
}
#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...