Submission #1152250

#TimeUsernameProblemLanguageResultExecution timeMemory
1152250dnnndaMarathon Race 2 (JOI24_ho_t3)C++20
62 / 100
115 ms63400 KiB
#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 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...