제출 #946518

#제출 시각아이디문제언어결과실행 시간메모리
946518vjudge1Brunhilda’s Birthday (BOI13_brunhilda)C++11
20 / 100
1094 ms262144 KiB
#include <iostream> using namespace std; const int MAX = 1e5 + 1; const int INF = 1e7 + 1; int m, q; int p[MAX]; int dp[INF]; int comp[INF]; int getMin(int x){ if (x == 0) return 0; if (dp[x] == 0){ dp[x] = INF; for (int i = 0; i < m; i++) { if (x % p[i] != 0) dp[x] = min(dp[x], 1 + getMin((x / p[i]) * p[i])); } } return dp[x]; } void solve(){ int n; cin >> n; int ans = getMin(n); if (ans == INF) cout << "oo\n"; else cout << ans << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> m >> q; for (int i = 0; i < m; i++){ cin >> p[i]; } for (int i = 0; i < q; i++){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...