Submission #1357128

#TimeUsernameProblemLanguageResultExecution timeMemory
1357128veyis_116Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
13 / 100
674 ms25824 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define f first
int main(){
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
        ll n,m; cin>>n>>m;
        ll a[n+1]; for(ll i=1;i<=n;i++) cin>>a[i];
        if(n<=5000 and m<=5000){
            while(m--){
                ll l,r,k; cin>>l>>r>>k;
                ll maxi=0;
                set<ll>s; s.insert(a[r]);
                ll mini=a[r];
                for(ll i=r-1;i>=l;i--){
                    if(mini>=a[i]){s.insert(a[i]); mini=min(a[i],mini); continue;}
                    auto l1=s.lower_bound(a[i]);
                    l1--;
                    maxi=max(maxi,*l1+a[i]);
                    mini=min(mini,a[i]);
                }
                if(maxi<=k) cout<<1<<endl;
                else cout<<0<<endl;
            }
            return 0;
        }
        ll pre[n+1]; pre[0]=0;
        ll b[n+1];
        for(ll i=1;i<n;i++){
            if(a[i]>a[i+1]) b[i]=-1;
            else b[i]=0;
        }
        ll sum=0;
        for(ll i=1;i<n;i++){
           sum+=b[i] ;
           pre[i]=sum;
        }
        while(m--){
            ll l,r,v; cin>>l>>r>>v;
            if(pre[r-1]-pre[l-1]<0) cout<<0<<endl;
            else cout<<1<<endl;
        }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...