#P14900. [ICPC 2018 Yokohama R] Four-Coloring

[ICPC 2018 Yokohama R] Four-Coloring

Description

给定一个连通图的平面嵌入。图中的每个顶点对应于一个具有整数坐标的不同点。两个顶点之间的每条边对应于连接这两个顶点对应点的直线段。由于给定的嵌入是平面的,对应边的线段除公共端点外不共享任何点。给定的嵌入被组织成使得所有线段的倾斜度都是 4545 度的倍数。换句话说,对于存在边的两个顶点 uuvv,其对应坐标分别为 (xu,yu)(x_u, y_u)(xv,yv)(x_v, y_v),则满足 xu=xvx_u = x_vyu=yvy_u = y_vxuxv=yuyv|x_u - x_v| = |y_u - y_v| 中的一个。

:::align{center}

图 H.1. 样例输入 1 和 2 :::

你的任务是为每个顶点涂上四种颜色 {1,2,3,4}\{1, 2, 3, 4\} 中的一种,使得有边连接的两个顶点颜色不同。根据著名的四色定理,这样的着色总是可能的。请找出一种着色方案。

Input Format

输入包含单个测试用例,格式如下。

$$\begin{aligned} & n \; m \\ & x_1 \; y_1 \\ & \vdots \\ & x_n \; y_n \\ & u_1 \; v_1 \\ & \vdots \\ & u_m \; v_m \end{aligned}$$

第一行包含两个整数 nnmmnn 是顶点数,mm 是边数,满足 3nm100003 \leq n \leq m \leq 10\,000。顶点编号为 11nn。接下来的 nn 行中,每行包含两个整数。第 vv 行的整数 xvx_v0xv10000 \leq x_v \leq 1000)和 yvy_v0yv10000 \leq y_v \leq 1000)表示顶点 vv 对应点的坐标。顶点对应于不同的点,即对于 uvu \neq v,满足 (xu,yu)(xv,yv)(x_u, y_u) \neq (x_v, y_v)。接下来的 mm 行中,每行包含两个整数。第 ii 行的整数 uiu_iviv_i,满足 1ui<vin1 \leq u_i < v_i \leq n,表示存在一条连接顶点 uiu_iviv_i 的边。

Output Format

输出应由 nn 行组成。输出的第 vv 行应包含一个整数 cv{1,2,3,4}c_v \in \{1, 2, 3, 4\},表示顶点 vv 将被涂色为 cvc_v。输出必须满足对于图中每条连接 uuvv 的边,都有 cucvc_u \neq c_v。如果有多个解,你可以输出其中任意一个。

5 8
0 0
2 0
0 2
2 2
1 1
1 2
1 3
1 5
2 4
2 5
3 4
3 5
4 5
1
2
2
1
3
6 10
0 0
1 0
1 1
2 1
0 2
1 2
1 2
1 3
1 5
2 3
2 4
3 4
3 5
3 6
4 6
5 6
1
2
3
4
2
1