#loj5715. 「BalticOI 2026」距离

「BalticOI 2026」距离

#5715. 「BalticOI 2026」距离

标签: 传统 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

题目译自 BalticOI 2026 Day2「Distances

给定两个整数 nnkk。你需要选择 nn 个互不相同的整点(即横纵坐标均为整数的点),使得平面上恰好有 kk 对点之间的欧几里得距离为整数。回顾一下,点 (x1,y1)(x_{1}, y_{1})(x2,y2)(x_{2}, y_{2}) 之间的欧几里得距离为:

$$\sqrt{\left(x_{1}-x_{2}\right)^{2}+\left(y_{1}-y_{2}\right)^{2}}$$

可以证明,在该任务的限制条件下,一定存在符合要求的解。

输入格式

唯一的一行包含两个整数 nnkk

输出格式

输出 nn 行,第 ii 行包含两个整数,表示第 ii 个点的坐标 xxyy。每个坐标的绝对值必须不超过 10910^{9}

如果存在多个解,你可以输出其中任意一个。

样例

输入

3 2

输出

1 1
1 2
2 2

(1,1)(1, 1)(1,2)(1, 2) 之间的欧几里得距离为 11。点 (1,2)(1, 2)(2,2)(2, 2) 之间的距离也为 11。然而,点 (1,1)(1, 1)(2,2)(2, 2) 之间的距离为 2\sqrt{2},不是一个整数。

数据范围与提示

对于所有输入数据,满足:

  • 1n1001 \leq n \leq 100
  • 0kn(n1)/20 \leq k \leq n(n-1) / 2

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n4n \leq 4 1111
22 k=n(n1)/2k=n(n-1) / 2 44
33 k=0k=0 66
44 knk \leq n 1919
55 kn(n1)/8k \leq n(n-1) / 8 2222
66 无附加限制 3838