CF1970B3.Exact Neighbours (Hard)

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

在最近食死徒对霍格华兹城堡发动了一些袭击之后,凤凰社决定将 nn 个成员安置在霍格迈德村。这些房子将坐落在一片风景如画的正方形场地上。每个巫师都有自己的房子,每个房子都属于某个巫师。每栋房子将占据一个正方形的空间。

然而,正如你可能知道的,巫师是非常迷信的。在周末,每个巫师 ii 都想参观距离自己房子aia_i(0≤ai≤n0 \leq a_i \leq n)的房子。

村里的道路是水平和垂直修建的,因此点(xi,yix_i,y_i)和(xj,yjx_j,y_j)之间的距离在 n×nn \times n 域上是$ |x_{i} - x_{j}| + |y_{i} - y_{j}| $ 。巫师们相互了解和信任,所以当第二个巫师不在时,一个巫师可以去另一个巫师的家。建造的房子将会足够大,所有 nn 个巫师都可以同时参观任何房子。

除此之外,每个巫师都必须能看到北边的霍格沃茨城堡和南边的禁林,所以其他巫师的房子不应该挡住视线。就村庄而言,这意味着在 n×nn \times n 域的每一列中,最多可以有一个房子,所以如果第 ii 个房子有坐标(xi,yi)(x_i,y_i),那么对于所有 ii 不等于 jj ,都有 xi≠xjx_i \neq x_j。

凤凰社还不知道是否有可能以这样的方式放置 nn 栋房子,以满足所有 nn 位巫师的参观和景观要求,所以他们请求您帮助设计这样的计划。

如果可以有一个正确的位置,其中第 ii 个向导的房子离它有 aia_i 的距离,而第 ii 个巫师的房子是他们列中唯一的房子,输出 YESYES,每个巫师的房子的位置,以及每个巫师周末应该去哪个向导的房子。

如果无法正确放置,则输出 NONO。

输入格式

第一行包含 nn (2≤n≤2×1052 \leq n \leq 2 \times 10^5),即要建造的房屋数量。

第二行包含从 a1a_1 到 ana_n 的n个整数。(0≤ai≤n0 \leq a_i \leq n)

输出格式

如果存在这样的放置,则在第一行输出 YESYES ;否则,输出 NONO 。

如果答案是 YESYES,则输出 n+1n+1 行描述放置的内容。

接下来的 nn 行应该包含每个巫师的房屋 1≤xi,yi≤n1 \leq x_i,y_i \leq n 的位置。

最后一行的第 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
    1 3 0 1

    输出#2

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

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

首页