Submission #1071664

#TimeUsernameProblemLanguageResultExecution timeMemory
1071664vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
17 / 100
310 ms41472 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n";
const int N = 2e5 + 8  , inf = 1e9+7 ;
int  n , m , q ;
signed main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    cin>> n >> q;
    int w[n+1] , l[q+1] , r[q+1] , k[q+1] , p[n+1];
    int mx1 = max(n , q );
    int mx2 =0 ;
    p[0] =0 ;
    for(int i= 1 ; i <= n; i++){
        cin>> w[i];
        p[i] = p[i-1];
        if(w[i]< mx2){
            mx2 = max(mx2 , w[i]);
            p[i]++;
        }
    }
    for(int i =1 ; i <= q; i++){
        cin>> l[i]>> r[i]>> k[i];
    }
    if(mx1 <= 5000){
        for(int i =1 ; i <=  q; i++){
            int mx =w[l[i]] , cnt =0  ;
            for(int j =l[i]+1 ; j <= r[i] ; j++){
                if(w[j]< mx ){
                    cnt = max(cnt , w[j]+mx);
                }
                else mx = w[j];
            }
            if(cnt <= k[i] ){
                cout << 1 << nn
            }
            else cout << 0 << nn
        }
    }
    else{
        for(int i =1 ; i <= q ; i++){
            if(p[r[i]] - p[l[i] - 1]==0 || l[i]==r[i])cout << 1<< nn
            else cout << 0 << nn
        }
    }
}
#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...