Bài 3 (HSG 9 Hải Phòng 2025-2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) và số nguyên dương \(M\). Hãy đếm số lượng cặp \((i, j)\) với \(1 \leq i < j \leq n\) sao cho \(a_i + a_j\) chia hết cho \(M\).

Input

  • Dòng đầu chứa hai số nguyên dương \(n, M\) (\(n \leq 3 \cdot 10^5\); \(M \leq 10^{18}\))
  • Dòng thứ hai chứa \(n\) số nguyên lần lượt là \(a_1, a_2, \ldots, a_n\) (\(|a_i| \leq 10^{18}\) với mọi \(i = 1,2,\ldots,n\))
  • Hai số liên tiếp trên cùng một dòng cách nhau bằng khoảng trống (space)

Output

  • Ghi ra màn hình một số nguyên duy nhất là số cặp tìm được.

Scoring

  • \(40\%\) số test ứng với \(40\%\) số điểm của bài có \(n \leq 5000\)
  • \(20\%\) số test tiếp theo ứng với \(20\%\) số điểm của bài có \(M \leq 10^6\)
  • Các test còn lại không có ràng buộc bổ sung

Example

Test 1

Input
5 4
1 3 2 6 2
Output
4
Note

Các cặp \((i,j)\) tìm được là \((1,2)\), \((3,4)\), \((3,5)\), \((4,5)\).

Bình luận (3)

Mới nhất
Tải bình luận...