Thi thử TS10 Vĩnh Phúc 2026 - Truy vấn chia hết

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho dãy gồm ~N~ số nguyên dương đôi một phân biệt ~A = (a_1, a_2, \dots, a_N)~.

Yêu cầu: Hãy trả lời ~Q~ truy vấn, mỗi truy vấn gồm ba số nguyên dương ~l, r, d~, yêu cầu đếm số phần tử ~a_i~ trong ~A~ thoả mãn:

  • ~l \le i \le r~

  • ~a_i~ hoặc là ước số của ~d~, hoặc là bội số của ~d~.

Input

  • Dòng 1: hai số nguyên ~N, Q~ - số phần tử của dãy ~A~ và số truy vấn ~(1 \le N, Q \le 10^5)~.

  • Dòng 2: ~N~ số nguyên dương đôi một phân biệt ~a_1, a_2, \dots, a_N~ ~(1 \le a_i \le 2 \cdot 10^5; a_i \ne a_j \forall i \ne j)~.

  • ~Q~ dòng tiếp theo, mỗi dòng chứa ba số nguyên ~l, r, d~ ~(1 \le l \le r \le N, 1 \le d \le 2 \cdot 10^5)~.

Output

In ra một dòng gồm ~Q~ số nguyên, số thứ ~i~ là kết quả của truy vấn thứ ~i~.

Scoring

Subtask Điểm Ràng buộc
1 ~40\%~ ~N, Q \le 1000~
2 ~60\%~ Không có ràng buộc bổ sung

Sample Input 1

8 5
12 10 3 18 6 72 28 42
1 8 6
3 7 7
2 6 9
1 5 5
4 8 4

Sample Output 1

6 1 3 1 2

Notes

Truy vấn 1: ~Q([12, 10, 3, 18, 6, 72, 28, 42], 6) \Rightarrow \{12, 3, 18, 6, 72, 42\}~ (có 6 phần tử).

Truy vấn 2: ~Q([3, 18, 6, 72, 28], 7) \Rightarrow \{28\}~ (có 1 phần tử).

Truy vấn 3: ~Q([10, 3, 18, 6, 72], 9) \Rightarrow \{3, 18, 72\}~ (có 3 phần tử).

Truy vấn 4: ~Q([12, 10, 3, 18, 6], 5) \Rightarrow \{10\}~ (có 1 phần tử).

Truy vấn 5: ~Q([18, 6, 72, 28, 42], 4) \Rightarrow \{72, 28\}~ (có 2 phần tử).


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.