Submission #1216229

#TimeUsernameProblemLanguageResultExecution timeMemory
1216229A_M_NamdarBrunhilda’s Birthday (BOI13_brunhilda)C++20
0 / 100
839 ms327680 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10, M = 1e7 + 10; int m, q, p[N], dp[M]; vector<int> vec[M]; void input() { cin >> m >> q; for (int i = 0; i < m; i++) cin >> p[i]; } void solve() { for (int i = 0; i < m; i++) for (int j = p[i]; j < M; j += p[i]) vec[j].push_back(p[i]); set<pair<int, int>> s; for (int i = 0; i < m; i++) s.insert({0, p[i]}); for (int i = 1; i < M; i++) { for (int x: vec[i]) { s.erase({i - x, x}); s.insert({i, x}); } dp[i] = 1e9 + 10; 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...