#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
long long b[N],s[N],rev[N],ss[N];
signed main(){
    int n,l,mn=INT_MAX,mx=INT_MIN;
    cin>>n >>l;
    for(int i=1;i<=n;i++){
        int inp;
        cin>>inp;
        mn=min(mn,inp);
        mx=max(mx,inp);
        b[inp]++,rev[inp]++;
    }
    for(int i=1;i<=l;i++) b[i]+=b[i-1],s[i]=b[i];
    s[0]=b[0];
    for(int i=1;i<=l;i++) s[i]+=s[i-1];
    for(int i=l;i>=0;i--) rev[i]+=rev[i+1],ss[i]=rev[i];
    for(int i=l;i>=0;i--) ss[i]+=ss[i+1];
    //s[mx],ss[mn]
    int q;
    cin>>q;
    while(q--){
        int st,ed;
        long long ck;
        cin>>st >>ed >>ck;
        long long tmp=min(s[mx]+(long long)abs(mn-st)+(long long)(mx-mn)+(long long)((long long)(n+1)*(long long)abs(mx-ed)),ss[mn]+(long long)abs(mx-st)+(long long)(mx-mn)+((long long)(n+1)*(long long)abs(mn-ed)));
        if(tmp<=ck) cout<<"Yes";
        else cout<<"No";
        cout<<"\n";
        
    }
}
| # | 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... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |