Submission #1178310

#TimeUsernameProblemLanguageResultExecution timeMemory
1178310biankMarathon Race 2 (JOI24_ho_t3)C++20
62 / 100
1596 ms55468 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; vll x(n); forn(i,n) cin>>x[i]; sort(all(x)); int q; cin>>q; forn(_,q){ int s,g,t; cin>>s>>g>>t; vll left,right; forn(i,n){ if(x[i]<g) left.pb(x[i]); else right.pb(x[i]); } reverse(all(right)); vector<vector<vll>> dp(sz(left)+1,vector<vll>(sz(right)+1,vll(2,INF))); dp[0][0][0]=dp[0][0][1]=0; forn(i,sz(left)+1) forn(j,sz(right)+1) forn(k,2){ ll pos=k==0?(i==0?s:left[i-1]):(j==0?s:right[j-1]); if(i<sz(left)) chmin(dp[i+1][j][0],dp[i][j][k]+(i+j+1LL)*abs(left[i]-pos)+1); if(j<sz(right)) chmin(dp[i][j+1][1],dp[i][j][k]+(i+j+1LL)*abs(right[j]-pos)+1); } ll res=INF; if(sz(left)) chmin(res,dp[sz(left)][sz(right)][0]+(n+1LL)*abs(left.back()-g)); if(sz(right)) chmin(res,dp[sz(left)][sz(right)][1]+(n+1LL)*abs(right.back()-g)); 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...