Ghép cặp (TS10 Ninh Bình)

Xem dạng PDF

Gửi bài giải

Điểm: 14,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, Kotlin, Pascal, PyPy, Python, Scratch

Trong một hệ thống ngân hàng điện tử, mỗi giao dịch được ghi nhận là một số nguyên đại diện cho số tiền đã giao dịch (số tiền có thể là số âm, dương hoặc bằng 0 ứng với các giao dịch như rút tiền, gửi tiền, tra cứu số dư …). Để phát hiện các hành vi gian lận, bộ phận bảo mật muốn kiểm tra xem có bao nhiêu cặp giao dịch có tổng đúng bằng một giá trị khả nghi ~x~ nào đó (ví dụ như tổng tiền bị mất, hoặc giá trị cụ thể của một giao dịch đáng ngờ).

Cho số lượng giao dịch cần phải kiểm tra là ~n~, số tiền trong từng giao dịch lần lượt là các số nguyên ~a_1, a_2, . . . a_n~ (trong đó ~|a_i|≤ 10^9~, ~1 ≤ n ≤ 10^5~). Với số nguyên ~x~ cho trước (~1≤ x ≤ 10^9~), bạn hãy viết một chương trình giúp bộ phận bảo mật kiểm tra số lượng cặp giao dịch (~i~, ~j~) thỏa mãn các điều kiện:

• ~a_i + a_j = x~

• ~1 ≤ i < j ≤ n~

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~x~.

  • Dòng thứ 2 chứa ~n~ số nguyên ~a_1, a_2, . . . a_n~

Mỗi số trên cùng một dòng ghi cách nhau ít nhất một dấu cách.

Kết quả:

  • Gồm một dòng chứa một số nguyên duy nhất là số cặp (~a_i, a_j~) tìm được.

Ví dụ:

Input

9 13
5 12 7 10 9 1 2 3 11

Output

3

Ràng buộc:

• Sub 1: 50% số test có ~n ≤5000~.

• Sub 2: 50% số test còn lại không có ràng buộc gì thêm.


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.