제출 #734025

#제출 시각아이디문제언어결과실행 시간메모리
734025MilosMilutinovicBrunhilda’s Birthday (BOI13_brunhilda)C++14
80.32 / 100
342 ms80700 KiB
/**
 *    author:  wxhtzdy
 *    created: 01.05.2023 15:53:44
**/
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);  
  int n, q;
  cin >> n >> q;
  vector<int> p(n);
  for (int i = 0; i < n; i++) {
    cin >> p[i];
  }           
  const int MAX = 1e7 + 5;
  vector<int> mn(MAX, MAX);
  for (int i = 0; i < n; i++) {
    for (int k = 0; p[i] * (k + 1) < MAX; k++) {
      mn[(k + 1) * p[i] - 1] = min(mn[(k + 1) * p[i] - 1], k * p[i]);
    }
  }
  for (int i = MAX - 1; i > 0; i--) {
    mn[i - 1] = min(mn[i - 1], mn[i]);
  }
  vector<int> ans(MAX);
  for (int i = 1; i < MAX; i++) {
    if (mn[i] == i || mn[i] == MAX) {
      ans[i] = MAX;
    } else {
      ans[i] = ans[mn[i]] + 1;
    }
  }
  while (q--) {
    int x;
    cin >> x;     
    if (ans[x] >= MAX) {
      cout << "oo" << '\n';     
    } else {
      cout << ans[x] << '\n';
    }
  }                                                          
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...