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ớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python
Cho dãy số gồm ~n~ số nguyên ~a_1, a_2, a_3, ..., a_n~ và một số nguyên dương ~k~. Số nguyên ~a_i, a_j~ là số nguyên lần lượt ở các vị trí thứ ~i~ và thứ ~j~.
Yêu cầu
Hãy cho biết có bao nhiêu cách chọn các cặp số ~i~ và ~j~ thỏa mãn: ~i < j~ và ~a_i + a_j~ chia hết cho ~k~.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng đầu tiên gồm hai số nguyên dương ~n, k~ ~(1 < n, k \le 10^6)~, mỗi số cách nhau một khoảng trắng.
- Dòng thứ hai chứa dãy số nguyên ~a_1, a_2, a_3, ..., a_n~ ~(|a_i| \le 10^9;\ 1 \le i \le n)~, mỗi số cách nhau một khoảng trắng.
Dữ liệu đầu ra
Gồm một số nguyên duy nhất là số cách chọn thỏa mãn yêu cầu bài toán.
Ràng buộc dữ liệu
- 60% số test ứng với 60% số điểm có ~n \le 10^3~.
- 40% số test ứng với 40% số điểm không giới hạn gì thêm.
Ví dụ
Ví dụ 1
INPUT
4 6
2 4 8 -8
OUTPUT
4
Giải thích: Có ~4~ cặp ~(i, j)~ thỏa mãn là: ~(1, 2), (1, 4), (2, 3), (3, 4)~.
Bình luận