MAXDIV - Đếm đoạn chia hết

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 498M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho số nguyên dương ~k~ và một dãy gồm ~N~ số nguyên dương~a_1, a_2, ..., a_n~. Tìm số cặp số nguyên dương (~l, r~) với ~l~ ≤ ~r~, sao cho trong các số từ ~a_l~ đến ~a_r~, có tối đa một số chia hết cho ~k~.

Input

  • Dòng đầu tiên gồm hai số nguyên dương ~N~ và ~k~ (~N~ ≤ ~3*10^5~, ~k ≤ 10^9~).
  • Dòng thứ hai gồm ~N~ số nguyên dương ~a_1, a_2, ..., a_n~(~a_i ≤ 10^9~).

Output

  • Một dòng duy nhất gồm số lượng cặp số (~l~, ~r~) thỏa mãn đề bài.

Sample

Input #1
5 2
1 2 3 4 5
Output #1
11

Hint

Giải thích:

  • Các cặp số (~l, r~) thỏa mãn là: ~(1,1), (1,2), (1,3), (2,2), (2,3), (3,3), (3,4), (3,5), (4,4), (4,5), (5,5)~.

Ràng buộc:

  • Subtask 1 (20% số test): ~N~ ≤ 200
  • Subtask 2 (40% số test): ~N~ ≤ 2000
  • Subtask 3 (40% số test): Không có ràng buộc gì thêm.

Problem source: Free Contest 120


Bình luận

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



  • 0
    M1nK_08  đã bình luận lúc 8, Tháng 12, 2024, 6:07

    dùng kĩ thuật: Tìm kiếm nhị phân O(nlogn) hoặc Hai Con Trỏ O(2n) nhé


  • 0
    bop2401  đã bình luận lúc 20, Tháng 10, 2024, 2:18 chỉnh sửa

    đề hay quá


  • 0
    bop2401  đã bình luận lúc 20, Tháng 10, 2024, 2:18 sửa 2

    đề thật sáng tạo


  • 1
    tiennv  đã bình luận lúc 5, Tháng 10, 2024, 9:39

    đề bảo tối đa 1 số chia hết cho k tức là có thể 0 số nào chia hết hoặc chỉ 1 số duy nhất.


  • -1
    Higa_Wateru  đã bình luận lúc 5, Tháng 1, 2024, 15:57

    cặp (1,1) sao chia hết cho 2 đc


  • -1
    161007thanhhiu  đã bình luận lúc 19, Tháng 10, 2023, 13:15

    đề giải thích gì kì v