제출 #1178299

#제출 시각아이디문제언어결과실행 시간메모리
1178299biankMarathon Race 2 (JOI24_ho_t3)C++20
24 / 100
97 ms2872 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<int(n);i++) #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define dforn(i,n) for(int i=int(n)-1;i>=0;i--) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define fst first #define snd second #define pb push_back #define eb emplace_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() typedef long long ll; typedef vector<ll> vll; typedef vector<int> vi; typedef pair<int,int> ii; const ll INF=1e18; void chmin(ll &x, ll v){ if(x>v) x=v; } int main(){ ios::sync_with_stdio(0); cin.tie(0); int n,l; cin>>n>>l; vi x(n); forn(i,n) cin>>x[i]; int q; cin>>q; forn(_,q){ int s,g,t; cin>>s>>g>>t; vector<vll> dp(1<<n,vll(n,INF)); forn(i,n) dp[1<<i][i]=abs(s-x[i])+1; forsn(mask,1,1<<n){ int c=__builtin_popcount(mask); forn(i,n) if(mask>>i&1){ forn(j,n) if(!(mask>>j&1)){ chmin(dp[mask^(1<<j)][j],dp[mask][i]+(c+1)*abs(x[j]-x[i])+1); } } } ll res=INF; forn(i,n) res=min(res,dp[(1<<n)-1][i]+(n+1)*abs(g-x[i])); if(res<=t) cout<<"Yes\n"; else cout<<"No\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...