#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... |