Notice
Chào mừng bạn đến với OREOJ

[HueICT 2026] Dãy ước số

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, C++20, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho dãy số nguyên dương ~A~ gồm ~N~ phần tử ~A_1, A_2, \ldots, A_N~.

Với mỗi phần tử ~A_i~, ta xét tất cả các ước số dương của ~A_i~ và thêm chúng vào một dãy mới ~D~.
Lưu ý rằng nếu một ước số xuất hiện nhiều lần (từ các phần tử khác nhau), thì nó cũng được thêm vào ~D~ tương ứng số lần đó.

Sau khi xử lí tất cả các phần tử, ta thu được dãy ~D~.
Tiếp theo, sắp xếp dãy ~D~ theo thứ tự không giảm.

Yêu cầu

Cho ~Q~ truy vấn. Mỗi truy vấn gồm một số nguyên dương ~x~.
Với mỗi truy vấn, hãy tìm phần tử thứ ~x~ trong dãy ~D~ sau khi đã sắp xếp.

Input

  • Dòng đầu tiên chứa hai số nguyên ~N, Q~.
  • Dòng thứ hai chứa ~N~ số nguyên dương ~A_1, A_2, \ldots, A_N~.
  • ~Q~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~x~.

Output

In ra ~Q~ dòng, mỗi dòng là giá trị ~D[x]~ tương ứng với truy vấn.

Ràng buộc

  • ~1 \le N \le 10^6~
  • ~1 \le Q \le 10^5~
  • ~1 \le A_i \le 10^6~
  • ~1 \le x \le |D|~

Subtasks

  • Subtask 1 (20%): ~N, Q, A_i \le 2000~
  • Subtask 2 (20%): Tất cả ~A_i~ là số nguyên tố
  • Subtask 3 (20%): ~N \le 10^4~, và mọi truy vấn có ~x \le 2 \times 10^6~
  • Subtask 4 (20%): Mọi truy vấn có ~x \le 2 \times 10^6~
  • Subtask 5 (20%): Không có ràng buộc bổ sung

Ví dụ

Input
3 4
3 6 2
1
3
6
8
Output
1
1
3
6

Giải thích

  • ~3 \to 1, 3~
  • ~6 \to 1, 2, 3, 6~
  • ~2 \to 1, 2~

Dãy ~D~: ~[1,3,1,2,3,6,1,2]~

Sắp xếp: ~[1,1,1,2,2,3,3,6]~

  • ~x=1 \to 1~
  • ~x=3 \to 1~
  • ~x=6 \to 3~
  • ~x=8 \to 6~

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.