A3623 「NOISG 2022 Final」Towers

暂无评定 传统题 NOISG(新加坡) 上传者
时间限制2000ms
内存限制1024MiB
通过 / 提交0/0

A3623「NOISG 2022 Final」Towers

暂无评定 传统题 NOISG(新加坡) 上传者
时间限制2000ms
内存限制1024MiB
通过 / 提交0/0

题目描述

译自 NOISG 2022 Final T3. Towers

兔子本森喜欢塔楼。有 NN 个城市,编号从 11 到 NN,城市 ii 位于整数坐标点 (Xi,Yi)(X_i, Y_i)。没有两个城市位于同一坐标点。本森希望在某些城市中建造塔楼,满足以下条件:

  • 对于任意 aa,xx 坐标为 aa 的塔楼最多有两座。
  • 对于任意 bb,yy 坐标为 bb 的塔楼最多有两座。
  • NN 个城市中的每一个要么建有塔楼,要么位于具有相同 xx 坐标或相同 yy 坐标的两个塔楼之间的线段上。更正式地,对于位于 (x,y)(x, y) 的城市,如果该城市没有塔楼,则必须存在两个塔楼位于 (x,c)(x, c) 和 (x,d)(x, d),且 c≤y≤dc \leq y \leq d,或者存在两个塔楼位于 (e,y)(e, y) 和 (f,y)(f, y),且 e≤x≤fe \leq x \leq f。

本森知道总是可以建造满足这些条件的塔楼,但不知道如何实现。帮助本森确定应在哪些城市建造塔楼。

输入格式

程序需从标准输入读取数据。

第一行包含一个整数 NN,表示城市数量。

接下来的 NN 行,第 ii 行包含两个整数 Xi,YiX_i, Y_i,表示城市 ii 位于坐标点 (Xi,Yi)(X_i, Y_i)。

输出格式

程序需向标准输出输出结果。

输出一行,包含 NN 个字符的字符串 A1A2…ANA_1 A_2 \ldots A_N。若本森应在城市 ii 建造塔楼,则 AiA_i 为 1;否则为 0。建造的塔楼需满足所有条件。

如果有多种答案,程序可以输出任意一种。

3
1 1
1 6
1 5

110

如果在城市 11 和 22 建造塔楼,它们具有相同的 xx 坐标,城市 33 也具有相同的 xx 坐标,且位于它们之间的线段上。

错误的输出为 111,因为若在所有 33 个城市都建造塔楼,xx 坐标为 11 的塔楼将超过两座。

另一个错误的输出为 101,因为尽管城市 22 与城市 11 和 33 具有相同的 yy 坐标,但它不在它们之间的线段上。

这个样例满足子任务 1,2,5,6,71, 2, 5, 6, 7 的限制。

6
1 1
1 2
2 1
2 2
3 1
3 2

110011

城市 33 位于城市 11 和 55 之间的线段上,两者具有相同的 yy 坐标;城市 44 位于城市 22 和 66 之间的线段上,两者具有相同的 yy 坐标。

这个样例满足子任务 2,5,6,72, 5, 6, 7 的限制。

8
1 13
2 13
7 27
7 13
7 2
2 27
7 4
4 13

10101101

这个样例满足子任务 2,5,6,72, 5, 6, 7 的限制。

数据范围与提示

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

  • 1≤N≤1061 \leq N \leq 10^6
  • 1≤Xi,Yi≤1061 \leq X_i, Y_i \leq 10^6
  • 对于所有 i≠ji \neq j,Xi≠XjX_i \neq X_j 或 Yi≠YjY_i \neq Y_j。

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

子任务 分值 附加限制
11 55 N≤3N \leq 3
22 1111 N≤16N \leq 16
33 77 N=abN = a b,其中 a,ba, b 为正整数,且对于所有整数 i,ji, j (0≤i≤b−1,1≤j≤a)(0 \leq i \leq b-1, 1 \leq j \leq a),(Xai+j,Yai+j)=(i+1,j)(X_{a i + j}, Y_{a i + j}) = (i+1, j)
44 66 对于每个整数 aa,xx 坐标为 aa 的城市最多有两个
55 3131 N≤5000N \leq 5000
66 2121 N≤100000N \leq 100000
77 1919 无附加限制