Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Truy vấn GCD

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 1G Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Cho một dãy \(a\) gồm \(n\) số nguyên dương \(a_{1}, a_{2}, a_{3}, ..., a_{n}\) \((a_{i} \leq 10^9)\).

Yêu cầu:
Có \(q\) truy vấn có dạng \(l, r, d\). Với mỗi truy vấn, bạn cần đếm xem có bao nhiêu đoạn con nằm trong đoạn từ \(l\) đến \(r\) có ước chung lớn nhất không vượt quá \(d\). Nói một cách cụ thể hơn, hãy đếm xem có bao nhiêu cặp \((u, v)\) sao cho:

  • \(l \leq u \leq v \leq r\).
  • \(gcd(a_{u}, a_{u + 1}, a_{u + 2}, ..., a_{v}) \leq d\).

Input

  • Dòng đầu tiên là \(2\) số \(n\) và \(q\) \((1 \leq n, q \leq 2.10^5)\).
  • Dòng tiếp theo chứa \(n\) số nguyên dương \(a_{1}, a_{2}, a_{3}, ..., a_{n}\) \((a_{i} \leq 10^9)\).
  • \(q\) dòng tiếp theo, mỗi dòng chứa ba số \(l, r, d\).

Output

  • Với mỗi truy vấn, in kết quả ra trên một dòng.

Example

Test 1

Input
6 5
3 9 6 2 8 4
1 5 3
2 4 3
1 5 4
2 6 2
1 6 1
Output
12
4
12
9
6

Scoring

  • \(20\%\) số test có \(n, q \leq 100\).
  • \(30\%\) số test có \(n, q \leq 1000\).
  • \(30\%\) số test có \(d\) là hằng số, \(n, q \leq 100000\) (với mọi truy vấn, \(d\) luôn không thay đổi).
  • \(20\%\) số test còn lại không có ràng buộc gì thêm.

Bình luận

Chưa có bình luận nào.