#include<bits/stdc++.h>
//#include<bits/extc++.h>
using namespace std;
//using namespace __gnu_pbds;
#define S second
#define F first
#define ll long long
//#pragma GCC optimize("Ofast, unroll-loop")
//#pragma GCC target("avx,avx2")
#pragma GCC optimize("O3")
const int inf=0x3f3f3f3f;
const ll inff=0x3f3f3f3f3f3f3f3f;
const int X=1000000007;
int x[2005];
ll dp[2005][2005][2];
signed main(){
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, l; cin >> n >> l;
    for(int i=1 ; i<=n ; i++) cin >> x[i];
    sort(x+1,x+n+1);
    int q; cin >> q;
    if(q>10) return 0;
    while(q--){
        memset(dp,0x3f,sizeof dp);
        vector<int> v[2];
        v[0]={0}, v[1]={0};
        int s, g, t; cin >> s >> g >> t;
        for(int i=1 ; i<=n ; i++){
            if(x[i]<g) v[0].push_back(x[i]);
            else v[1].push_back(x[i]);
            //cout << x[i] << '\n';
        }
        reverse(v[1].begin()+1,v[1].end());
        //for(int i:v[1]) cout << i << '\n';
        dp[1][0][0]=abs(s-v[0][1]), dp[0][1][1]=abs(s-v[1][1]);
        for(int i=0 ; i<v[0].size() ; i++) for(int j=0 ; j<v[1].size() ; j++){
            if(i+1<v[0].size()) dp[i+1][j][0]=
                min({dp[i+1][j][0],dp[i][j][0]+1LL*(1+i+j)*abs(v[0][i]-v[0][i+1]),dp[i][j][1]+1LL*(1+i+j)*abs(v[1][j]-v[0][i+1])});
            if(j+1<v[1].size()) dp[i][j+1][1]=
                min({dp[i][j+1][1],dp[i][j][0]+1LL*(1+i+j)*abs(v[0][i]-v[1][j+1]),dp[i][j][1]+1LL*(1+i+j)*abs(v[1][j]-v[1][j+1])});
        }
        //for(int i=0 ; i<v[0].size() ; i++) for(int j=0 ; j<v[1].size() ; j++)
            //cout << i << ' ' << j << ' ' << dp[i][j][0] << ' ' << dp[i][j][1] << '\n';
        ll len=
            min(dp[v[0].size()-1][v[1].size()-1][0]+1LL*(n+1)*abs(v[0].back()-g),dp[v[0].size()-1][v[1].size()-1][1]+1LL*(n+1)*abs(v[1].back()-g));
        //cout << len+n << '\n';
        cout << (len+n<=t ? "Yes\n" : "No\n");
    }
    return 0;
}
| # | 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... |