CF1970B2.Exact Neighbours (Medium)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

本题与难度更高的版本唯一的区别是 a1=0a_{1} = 0。

在食死徒最近对霍格沃茨城堡的袭击之后,凤凰社决定在霍格莫德村驻扎 nn 名成员。房屋将建在一块风景如画的 n×nn\times n 正方形场地上。每位巫师将拥有属于自己的房屋,每座房屋都归某位巫师所有。每座房屋占据一个格子。

然而,正如你所知,巫师们非常迷信。在周末,每位巫师 ii 希望拜访距离自己房屋恰好 aia_{i} 格远的另一座房屋(0≤ai≤n0 \leq a_{i} \leq n)。村中的道路仅沿水平方向和垂直方向修建,因此在 n×nn\times n 场地上,点 (xi,yi)(x_{i}, y_{i}) 与 (xj,yj)(x_{j}, y_{j}) 之间的距离为 ∣xi−xj∣+∣yi−yj∣|x_{i} - x_{j}| + |y_{i} - y_{j}|。巫师们彼此信任,因此当某位巫师外出时,其他巫师可以拜访他的房屋。房屋足够大,能够容纳所有 nn 位巫师同时拜访任意一座房屋。

除此之外,每位巫师都必须拥有面朝北方霍格沃茨城堡和南方禁林的视野,因此任何一位巫师的房屋都不能遮挡其他人的视线。具体来说,在 n×nn\times n 场地的每一列中,最多只能有一座房屋。也就是说,如果第 ii 座房屋的坐标为 (xi,yi)(x_{i}, y_{i}),则对于所有 i≠ji \neq j,都有 xi≠xjx_{i} \neq x_{j}。

凤凰社尚不确定是否能够安排 nn 座房屋,使得所有 nn 位巫师的拜访和视野要求都能被满足,因此他们请求你帮忙设计这样一个方案。

如果存在一种合法的房屋摆放方式,使得对于每位第 ii 位巫师,都存在一座距离其房屋恰好为 aia_{i} 的房屋,并且第 ii 位巫师的房屋是其所在列唯一的房屋,则输出 YES,并输出每位巫师房屋的位置,以及每位巫师周末应拜访哪位巫师的房屋。

如果不存在合法的摆放方式,则输出 NO。

输入格式

第一行包含一个整数 nn(2≤n≤2⋅1052 \leq n \leq 2\cdot 10^{5}),表示要建造的房屋数量。

第二行包含 nn 个整数 a1,…,ana_{1}, \ldots, a_{n}(0≤ai≤n0 \leq a_{i} \leq n),且 a1=0a_{1} = 0。

输出格式

如果存在合法的摆放方式,第一行输出 YES,否则输出 NO。

如果答案为 YES,接下来输出 n+1n+1 行描述房屋的摆放方式。

接下来的 nn 行,每行包含两个整数,表示每位巫师房屋的坐标 1≤xi,yi≤n1 \leq x_{i}, y_{i} \leq n。

最后一行包含 nn 个整数,第 ii 个数表示第 ii 位巫师在周末应拜访哪位巫师的房屋(即该房屋与其房屋的距离恰好为 aia_{i})。如果有多种选择,可以输出任意一种。

如果存在多种房屋摆放方案,可以输出任意一种。

输入输出样例

  • 输入#1

    4
    0 4 2 4

    输出#1

    YES
    4 4
    1 3
    2 4
    3 1
    1 1 1 3
  • 输入#2

    4
    0 1 3 1

    输出#2

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

说明/提示

对于样例,第一位巫师的房屋位于 (4,4)(4, 4),第二位巫师的房屋位于 (1,3)(1, 3),第三位巫师的房屋位于 (2,4)(2, 4),第四位巫师的房屋位于 (3,1)(3, 1)。

第一位巫师的房屋到自己的房屋距离为 ∣4−4∣+∣4−4∣=0|4 - 4| + |4 - 4| = 0。

第二位巫师的房屋到第一位巫师的房屋距离为 ∣1−4∣+∣3−4∣=4|1 - 4| + |3 - 4| = 4。

第三位巫师的房屋到第一位巫师的房屋距离为 ∣2−4∣+∣4−4∣=2|2 - 4| + |4 - 4| = 2。

第四位巫师的房屋到第三位巫师的房屋距离为 ∣3−2∣+∣1−4∣=4|3 - 2| + |1 - 4| = 4。

所有房屋都满足视野和距离要求,因此该摆放方案是正确的。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页