Submission #331370

#TimeUsernameProblemLanguageResultExecution timeMemory
331370dolphingarlicSegway (COI19_segway)C++14
100 / 100
161 ms6380 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; int a[20000], b[20000], c[20000], cnt[301], pos[20000], ans[20000], boost[20000]; vector<int> riders[51]; bool to_check[301]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i] >> b[i] >> c[i]; riders[a[i]].push_back(i); } int m; cin >> m; while (m--) { int d; cin >> d; to_check[d] = true; } int now = 0; while (cnt[300] < n) { now++; for (int i : riders[now % 51]) { pos[i]++; if (to_check[pos[i]] && !boost[i]) boost[i] = cnt[pos[i]] % 20; if (pos[i] == 300) ans[i] = now; else if (boost[i]) { boost[i]--; riders[(now + 1) % 51].push_back(i); } else { int nxt; if (pos[i] < 100) nxt = (now + a[i]) % 51; else if (pos[i] < 200) nxt = (now + b[i]) % 51; else nxt = (now + c[i]) % 51; riders[nxt].push_back(i); } } for (int i : riders[now % 51]) cnt[pos[i]]++; riders[now % 51].clear(); } for (int i = 0; i < n; i++) cout << ans[i] << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...