#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
void chmin(ll &a,ll b){a=min(a,b);}
void chmax(ll &a,ll b){a=max(a,b);}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll n,L;
cin>>n>>L;
ll x[n+5];
for(ll i=1;i<=n;i++){
cin>>x[i];
}
sort(x+1,x+n+1);
x[0]=0;
ll q;
cin>>q;
while(q--){
ll s,g,t;
cin>>s>>g>>t;
vector<ll>v,u;
for(ll i=1;i<=n;i++){
if(x[i]<g){
v.pb(x[i]);
}
else{
u.pb(x[i]);
}
}
reverse(all(u));
// for(ll x:v) cout<<x<<' ';
// cout<<"\n";
// for(ll x:u) cout<<x<<' ';
// cout<<"\n";
ll dp[n+5][n+5][2];
for(ll i=0;i<=n;i++){
for(ll j=0;j<=n;j++){
dp[i][j][0]=dp[i][j][1]=(ll)1e18;
}
}
dp[0][0][0]=dp[0][0][1]=0;
for(ll i=0;i<=(ll)v.size();i++){
for(ll j=0;j<=(ll)u.size();j++){
if(i<(ll)v.size()){//i,j to i+1,j
ll pos=(i==0?s:v[i-1]);
// ll pos1=(j==0?s:u[j-1]);
chmin(dp[i+1][j][0],dp[i][j][0]+abs(v[i]-pos)*(i+j+1));
pos=(j==0?s:u[j-1]);
chmin(dp[i+1][j][0],dp[i][j][1]+abs(v[i]-pos)*(i+j+1));
}
if(j<(ll)u.size()){
ll pos=(i==0?s:v[i-1]);
// ll pos1=(j==0?s:u[j-1]);
chmin(dp[i][j+1][1],dp[i][j][0]+abs(u[j]-pos)*(i+j+1));
pos=(j==0?s:u[j-1]);
chmin(dp[i][j+1][1],dp[i][j][1]+abs(u[j]-pos)*(i+j+1));
}
}
}
// for(ll i=0;i<=(ll)v.size();i++){
// for(ll j=0;j<=(ll)u.size();j++){
// cout<<dp[i][j][0]<<' '<<dp[i][j][1]<<' ';
// }
// cout<<"\n";
// }
ll tm=(ll)1e18;
if(v.size()>0) chmin(tm,dp[v.size()][u.size()][0]+abs(v.back()-g)*(n+1));
if(u.size()>0) chmin(tm,dp[v.size()][u.size()][1]+abs(u.back()-g)*(n+1));
tm+=(n+1);//pick up time
cout<<(tm<=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... |