Submission #400941

#TimeUsernameProblemLanguageResultExecution timeMemory
400941NintsiChkhaidzeHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
0 / 100
3071 ms4100 KiB
#include<bits/stdc++.h>
#define ll long long
#define s second
#define f first
#define pb push_back
using namespace std;
const int N = 200005;
int a[N],id[N];
pair <int,int> b[N];
bool go(int l,int r,int L,int R){
    if (l > r) swap(l,r);
    if (L > R) swap(L,R);
    if (l > L) swap(l,L),swap(r,R);
    //l r  / L R
    //l L r R
    if (l < L && L < r) return 1;
    return 0;
}
int main(){
    ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL);
    int n,m;
    cin>>n>>m;
    
    for (int i=1;i<=n;i++) cin>>a[i];
    for (int i=1;i<=m;i++){
        int l,r,k;
        cin>>l>>r>>k;
        
        for (int j=l;j<=r;j++) 
            b[j] = {a[j],j};
        
        sort(b + l,b + r + 1);
        for (int j = l; j <= r; j++) {
             id[b[j].s] = j;
            // cout<<b[j].f<<" "<<b[j].s<<endl;
        }
        
        bool q=1;
        for (int j = l; j <= r; j++){
            for (int d = j + 1; d <= r; d++){
                if (a[j] + a[d] <= k) continue;
                bool check = go(j,id[j],d,id[d]);
                if (check) {q=0; break;}
            }
            if (!q) break;
        }
        cout<<q<<"\n";
    }
}
#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...