Submission #250451

#TimeUsernameProblemLanguageResultExecution timeMemory
250451combi1k1Collecting Stamps 3 (JOI20_ho_t3)C++14
100 / 100
93 ms66424 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define ld double #define sz(x) (int)x.size() #define all(x) x.begin(),x.end() #define pb emplace_back #define X first #define Y second const int N = 205; int x[N]; int t[N]; ll f[N][N][N][2]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int L; cin >> L; for(int i = 1 ; i <= n ; ++i) cin >> x[i]; for(int i = 1 ; i <= n ; ++i) cin >> t[i]; for(int i = 1 ; i <= n ; ++i) f[0][0][i][0] = 2e18, f[0][0][i][1] = 2e18; x[n + 1] = L; for(int i = 0 ; i <= n ; ++i) for(int j = 0 ; j <= n ; ++j) { if (i < 1 && j < 1) continue; if (i + j > n) break; for(int k = 0 ; k <= n ; ++k) { ll& res1 = f[i][j][k][0]; res1 = 2e18; ll& res2 = f[i][j][k][1]; res2 = 2e18; if (i) res1 = min(res1,f[i - 1][j][k][0] + x[n - i + 2] - x[n - i + 1]), res1 = min(res1,f[i - 1][j][k][1] + x[j] + L - x[n - i + 1]); if (j) res2 = min(res2,f[i][j - 1][k][0] + x[j] + L - x[n - i + 1]), res2 = min(res2,f[i][j - 1][k][1] + x[j] - x[j - 1]); if (k == 0) continue; ll nxt; if (i) { if ((nxt = f[i - 1][j][k - 1][0] + x[n - i + 2] - x[n - i + 1]) <= t[n - i + 1]) res1 = min(res1,nxt); if ((nxt = f[i - 1][j][k - 1][1] + x[j] + L - x[n - i + 1]) <= t[n - i + 1]) res1 = min(res1,nxt); } if (j) { if ((nxt = f[i][j - 1][k - 1][0] + x[j] + L - x[n - i + 1]) <= t[j]) res2 = min(res2,nxt); if ((nxt = f[i][j - 1][k - 1][1] + x[j] - x[j - 1]) <= t[j]) res2 = min(res2,nxt); } } } int ans = 0; for(int i = 0 ; i <= n ; ++i) for(int k = 0 ; k <= n ; ++k) { if (f[i][n - i][k][0] < 2e18) ans = max(ans,k); if (f[i][n - i][k][1] < 2e18) ans = max(ans,k); } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...