#abc234h. [abc234_h]Enumerate Pairs

[abc234_h]Enumerate Pairs

题目描述

给定 NN 对整数 (xi,yi)(x_i, y_i),编号从 11NN,以及一个整数 KK
按照输出要求的格式列出满足以下条件的整数对 (p,q)(p,q)

  • 1lep<qleN1 \\le p < q \\le N
  • sqrt(xpxq)2+(ypyq)2leK\\sqrt{(x_p-x_q)^2+(y_p-y_q)^2} \\le K

这里保证满足条件的整数对个数不超过 4times1054 \\times 10^5 对。

约束条件

  • 输入中的所有值均为整数。
  • 1leNle2times1051 \\le N \\le 2 \\times 10^5
  • 1leKle1.5times1091 \\le K \\le 1.5 \\times 10^9
  • 0lexi,yile1090 \\le x_i,y_i \\le 10^9
  • 应列出的整数对不超过 4times1054 \\times 10^5 对。

输入

从标准输入读入数据,输入的格式如下:

NN KK x1x_1 y1y_1 x2x_2 y2y_2 vdots\\vdots xNx_N yNy_N

输出

按照如下格式打印答案。

MM p1p_1 q1q_1 p2p_2 q2q_2 vdots\\vdots pMp_M qMq_M

第一行应包含一个整数 MM,表示要列出的整数对的个数。
接下来的 MM 行中,按照字典序列出要列出的整数对 (pi,qi)(p_i,q_i),每行一个,以空格分隔。
在这里,只有满足以下条件之一的情况下,整数对 (a,b)(a,b) 才在整数对 (c,d)(c,d) 之前。

  • a<ca<c
  • a=ca=c 并且 b<db<d

示例输入 1

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

示例输出 1

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

满足条件的整数对有 99 对,应按指定格式打印出来。
$(1,2),(1,3),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5),(5,6)$


示例输入 2

2 1414213562
0 0
1000000000 1000000000

示例输出 2

0

可能没有满足条件的整数对。


示例输入 3

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

示例输出 3

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

可能存在整数对 (i,j)(i,j) (i<ji < j) 满足 xi=xjx_i=x_j 并且 yi=yjy_i=y_j