Chọn ĐTQG Bắc Ninh 2026 - Dãy đặc biệt

Xem dạng PDF

Gửi bài giải

Điểm: 55,00 (OI)
Giới hạn thời gian: 1.0s
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

Cho dãy số nguyên ~A~ gồm ~n~ số nguyên: ~a_1, a_2, \dots, a_n~.

Một đoạn con gồm các phần tử liên tiếp của ~A~ từ vị trí ~s~ đến vị trí ~t~ (~s \le t~) được gọi là đoạn con đặc biệt nếu thỏa mãn điều kiện:

~a_s \cdot a_{s+1} \cdot \dots \cdot a_t = \operatorname{lcm}(a_s, a_{s+1}, \dots, a_t)~

với ~\operatorname{lcm}(a_s, a_{s+1}, \dots, a_t)~ là bội chung nhỏ nhất của ~a_s, a_{s+1}, \dots, a_t~.

Có ~q~ truy vấn, truy vấn thứ ~i~ là: cho hai số nguyên ~l_i~ và ~r_i~, hãy chia đoạn ~a_{l_i}, a_{l_i+1}, \dots, a_{r_i}~ thành ít nhất các đoạn con đặc biệt.

Yêu cầu: Với mỗi truy vấn, hãy tìm số đoạn con đặc biệt ít nhất.

Input

  • Dòng thứ nhất chứa hai số nguyên dương ~n~ và ~q~ (~1 \le n, q \le 10^5~);

  • Dòng thứ hai chứa ~n~ số nguyên dương ~a_1, a_2, \dots, a_n~ (~1 \le a_i \le 10^5~);

  • ~q~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~l_i~ và ~r_i~ (~1 \le l_i \le r_i \le n~).

Output

Gồm ~q~ dòng, dòng thứ ~i~ ghi kết quả của truy vấn thứ ~i~.

Scoring

Subtask Điểm Ràng buộc
1 ~50\%~ ~1 \le n, q \le 1000~
2 ~25\%~ Tất cả ~a_i~ đều là số nguyên tố
3 ~25\%~ Không có giới hạn gì thêm

Sample Input 1

5 2
2 3 10 7 5
2 4
3 5

Sample Output 1

1
2

Notes

Truy vấn 1: các phần tử ~3, 10, 7~ có tích và bội chung nhỏ nhất cùng bằng ~210~, nên chia thành số đoạn con đặc biệt ít nhất là ~1~.

Truy vấn 2: các phần tử ~10, 7, 5~ có thể chia thành ít nhất ~2~ đoạn con đặc biệt thỏa mãn.


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.