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