Submission #1216249

#TimeUsernameProblemLanguageResultExecution timeMemory
1216249A_M_NamdarBrunhilda’s Birthday (BOI13_brunhilda)C++20
100 / 100
253 ms44776 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10, M = 1e7 + 10; int m, q, p[N], dp[M]; set<pair<int, int>> s; void input() { cin >> m >> q; for (int i = 0; i < m; i++) cin >> p[i]; } void solve() { for (int i = 0; i < m; i++) s.insert({0, p[i]}); for (int i = 1; i < M; i++) { dp[i] = 1e9 + 10; while (s.begin()->first != i - (i % s.begin()->second)) { int tmp = s.begin()->second; s.erase(s.begin()); s.insert({i - (i % tmp), tmp}); } dp[i] = min(dp[i], dp[i - (i % (s.begin())->second)] + 1); } while (q--) { int n; cin >> n; if (dp[n] > 1e9) cout << "oo\n"; else cout << dp[n] << '\n'; } } int main() { ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0); input(); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...