// 23 - 12 - 23
#include<bits/stdc++.h>
using namespace std;
#define read() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define day() time_t now = time(0);char* x = ctime(&now);cerr<<"Right Now Is : "<<x<<"\n"
#define int long long
#define ii pair<int,int>
#define X first
#define Y second
const long long MAX = (int)5e5 + 5;
const long long INF = (int)1e9;
const long long MOD = (int)1e9 + 7;
int n,L,cnt[MAX];
int l[MAX],r[MAX];
int costl[MAX],costr[MAX];
int farl,farr;
bool cost(int idx,int idy,int t){
if(idx <= idy){
int val = costl[idy] + (l[idx] + 1) * (idy - idx);
if(idx > farl)val += (idx - farl);
//cout << val << "\n";
if(farr > idy)val += costr[idy] + 2 * (farr - idy) * (1 + l[idy]);
//cout << val << " " << t << " -- \n";
return val + n <= t;
}else{
int val = costr[idx] + (r[idy] + 1) * (idx - idy);
if(idx < farr)val += (farr - idx);
if(farl < idy)val += costl[idy] + 2 * (idy - farl) * (1 + r[idy]);
//cout << val << " " << t << " \n";
return val + n <= t;
}
}
signed main(){
read();
cin >> n >> L;
L++;
farl = L;
farr = 1;
for(int i = 1,x;i <= n;i++){
cin >> x;
x++;
cnt[x]++;
farl = min(farl,x);
farr = max(farr,x);
}
for(int i = 1;i <= L;i++){
l[i] = l[i - 1] + cnt[i];
costl[i] = costl[i - 1] + l[i - 1];
}
//
for(int i = L;i >= 1;i--){
r[i] = r[i + 1] + cnt[i];
costr[i] = costr[i + 1] + r[i + 1];
}
int q;cin >> q;
for(int i = 1,s,g,t;i <= q;i++){
cin >> s >> g >> t;
s++;g++;
cout << ((cost(s,g,t)) ? "Yes" : "No") << "\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... |