제출 #1269595

#제출 시각아이디문제언어결과실행 시간메모리
1269595rafamiuneCollecting Stamps 3 (JOI20_ho_t3)C++17
15 / 100
448 ms440 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define fr first #define sc second #define all(x) (x).begin(), (x).end() const int MOD = 1e9 + 7; const int MAXN = 2e2 + 5; const long long INF = 1e18 + 5; int n, d; vector<int> t(MAXN), x(MAXN); int dist(int a, int b) { if(b >= a) return min(x[b] - x[a], d - (x[b] - x[a])); return min(x[a] - x[b], d - (x[a] - x[b])); } int32_t main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> n >> d; for(int i = 1; i <= n; i++) cin >> x[i]; for(int i = 1; i <= n; i++) cin >> t[i]; int ans = 0; for(int mask = 0; mask < (1<<n); mask++) { int l = 0, r = 0, cur = 0, time = 0, tot = 0; for(int i = 0; i < n; i++) { if(mask & (1<<i)) { r = (r + 1) % (n + 1); time += dist(cur, r); if(time <= t[r]) tot++; cur = r; } else { l = (l + n) % (n + 1); time += dist(cur,l); if(time <= t[l]) tot++; cur = l; } } ans = max(tot, ans); } cout << ans << "\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...