11666. Порахувати пари


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Дано \(N\) пар цілих чисел (\(x_i,y_i\)), які пронумеровані від 1 до \(N\) і ціле число \(K\).

Перерахуйте всі пари цілих чисел (\(p,q\)), які задовольняють наведеним нижче умовам, у форматі, зазначеному у виведенні.

  • \(1 \le p < q \le N\)

  • \(\sqrt{(x_p-x_q)^2+(y_p-y_q)^2} \le K\)

Тут гарантовано, що є не більше \(4 \times 10^5\) такі пари цілих чисел.

Формат вхідних даних

Перший рядок містить цілі числа \(N, K\) (\(1 \le N \le 2 \times 10^5\), \(1 \le K \le 1.5 \times 10^9\))

Наступні  \(N\) рядків містять цілі числа \(x_i, y_i\) (\(0 \le x_i, y_i \le 10^9\))

Числа у рядках розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть відповідь у такому форматі.

Перший рядок повинен містити ціле число \(M\), що представляє кількість пар цілих чисел, які будуть перераховані.

Наступні \(M\) рядків повинні містити пари цілих чисел, які будуть перераховані (\(p_i,q_i\)) у лексикографічному порядку, кожен у своєму рядку, розділений пробілом.

Тут пара цілих чисел (\(a,b\)) стоїть перед парою цілих чисел (\(c,d\)) тоді й лише тоді, коли виконується одна з наступних умов.

  • \(a<c\).

  • \(a=c\) і \(b<d\).

Приклад вхідних даних

6 5
2 0
2 2
3 4
0 0
5 5
8 3

Приклад вихідних даних

9
1 2
1 3
1 4
2 3
2 4
2 5
3 4
3 5
5 6

Приклад вхідних даних

2 1414213562
0 0
1000000000 1000000000

Приклад вихідних даних

0

Приклад вхідних даних

10 150
300 300
300 400
300 500
400 300
400 400
400 400
400 500
500 300
500 400
500 500

Приклад вихідних даних

29
1 2
1 4
1 5
1 6
2 3
2 4
2 5
2 6
2 7
3 5
3 6
3 7
4 5
4 6
4 8
4 9
5 6
5 7
5 8
5 9
5 10
6 7
6 8
6 9
6 10
7 9
7 10
8 9
9 10

Коментарі

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