Пари з заданою сумою

Переглянути як PDF

Надіслати розвʼязок


Бали: 15,00 (частково)
Ліміт часу: 1.0s
Ліміт памʼяті: 256M
Ввід: stdin
Вивід: stdout

Тип задачі

Вам задано послідовність з ~n~ цілих чисел ~a_1, a_2, \ldots, a_n~ та число ~k~.

Потрібно порахувати кількість пар індексів ~(i, j)~ таких, що ~1 \le i < j \le n~ та ~a_i + a_j = k~.

Зверніть увагу, що пари розрізняються за індексами, а не за значеннями — якщо в масиві є декілька однакових чисел, кожна відповідна пара індексів рахується окремо.

Вхідні дані

  • Перший рядок містить два цілих числа ~n~ і ~k~ (~1 \le n \le 2 \cdot 10^5~, ~-10^9 \le k \le 10^9~).
  • Другий рядок містить ~n~ цілих чисел ~a_1, a_2, \ldots, a_n~ (~-10^9 \le a_i \le 10^9~).

Вихідні дані

Виведіть одне ціле число — кількість пар ~(i, j)~, для яких ~a_i + a_j = k~.

Гарантується, що відповідь поміщається в 64-бітний цілочисельний тип (long long).

Приклади

Приклад 1

Вхідні дані:

5 6
1 5 3 4 2

Вихідні дані:

2

Пояснення: масив ~a = [1, 5, 3, 4, 2]~. Пари індексів із сумою ~6~: ~(1,2)~, бо ~a_1+a_2=1+5=6~, та ~(4,5)~, бо ~a_4+a_5=4+2=6~. Разом — ~2~ пари.

Приклад 2

Вхідні дані:

6 10
5 5 5 5 5 5

Вихідні дані:

15

Пояснення: усі ~\binom{6}{2}=15~ пар дають суму ~10~.

Приклад 3

Вхідні дані:

1 0
100

Вихідні дані:

0

Коментарі

Будь ласка, прочитайте правила перед коментуванням.


Наразі коментарів немає.