CF1173B.Nauuo and Chess

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Nauuo and Chess

题目描述

Nauuo 是一个喜欢下棋的女孩。

有一天,她自己发明了一种游戏,需要用 nn 个棋子在一个 m×mm\times m 的棋盘上进行。棋盘的行和列编号均从 11 到 mm。我们用 (r,c)(r, c) 表示第 rr 行第 cc 列的格子。

游戏的目标是将编号为 11 到 nn 的 nn 个棋子放在棋盘上,第 ii 个棋子放在 (ri,ci)(r_i, c_i),同时满足以下规则:对于所有棋子对 ii 和 jj,都有 ∣ri−rj∣+∣ci−cj∣≥∣i−j∣|r_i - r_j| + |c_i - c_j| \ge |i - j|。其中 ∣x∣|x| 表示 xx 的绝对值。

然而,Nauuo 发现有时候棋盘太小,她无法找到满足条件的方案。

她想知道,最小需要多大的棋盘,才能按照规则放下 nn 个棋子。

她还想知道,在这样最小的棋盘上,应该如何放置这些棋子。你能帮帮她吗?

输入格式

一行一个整数 nn(1≤n≤10001 \le n \le 1000),表示游戏所需的棋子数量。

输出格式

第一行输出一个整数,表示最小的 mm,即满足条件的棋盘边长。

接下来 nn 行,每行两个整数 rir_i 和 cic_i(1≤ri,ci≤m1 \le r_i, c_i \le m),表示第 ii 个棋子的坐标。

如果有多组答案,输出任意一组均可。

说明/提示

在第一个样例中,你无法在 1×11\times1 的棋盘上放下两个棋子而不违反规则。但你可以在 2×22\times2 的棋盘上这样放置两个棋子:

在第二个样例中,你无法在 2×22\times2 的棋盘上放下四个棋子而不违反规则。例如,如果你这样放置棋子:

那么 ∣r1−r3∣+∣c1−c3∣=∣1−2∣+∣1−1∣=1|r_1 - r_3| + |c_1 - c_3| = |1-2| + |1-1| = 1,∣1−3∣=2|1-3| = 2,1<21 < 2;并且 ∣r1−r4∣+∣c1−c4∣=∣1−2∣+∣1−2∣=2|r_1 - r_4| + |c_1 - c_4| = |1-2| + |1-2| = 2,∣1−4∣=3|1-4| = 3,2<32 < 3。这不满足规则。

然而,在 3×33\times3 的棋盘上,你可以这样放置四个棋子:

由 ChatGPT 4.1 翻译

样例

2
2
1 1
1 2
4
3
1 1
1 3
3 1
3 3

在线编程 IDE

建议全屏模式获得最佳体验