#E. Bichromization

    Type: Default 2000ms 1024MiB

Bichromization

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

Bichromization

题目描述

注:本题和AT评分不同,将采用子任务绑定来评分!

你有一个 NN 个点 MM 条边的无向简单连通图(即无自环和重边),第 ii 个点有点权 DiD_i。你现在要给每个点染上黑白两种颜色,以及给每条边一个 [1,109][1,10^9] 之间的整数边权,使得:

  • 白点和黑点都要出现。
  • ii 到和它颜色不一样的点的最短路为 DiD_i

请判断是否有解,如果有要输出方案,否则输出-1

输入格式

第一行两个整数 N,MN,M ,第二行 NN 个整数 DiD_i ,接下来 MM 行每行两个整数 Ui,ViU_i,V_i 表示一条边。

N N M M D1 D_1 D2 D_2 ... ... DN D_N U1 U_1 V1 V_1 U2 U_2 V2 V_2 \vdots UM U_M VM V_M

输出格式

如果无解,输出一行一个整数 1-1

否则,第一行输出一个只含 BBWW 的长为 NN 的字符串 SS ,接下来 MM 行每行一个整数 CiC_i 表示每条边的边权,边的顺序按输入顺序给定。

样例 #1

样例输入 #1

5 5
3 4 3 5 7
1 2
1 3
3 2
4 2
4 5

样例输出 #1

BWWBB
4
3
1
5
2

样例 #2

样例输入 #2

5 7
1 2 3 4 5
1 2
1 3
1 4
2 3
2 5
3 5
4 5

样例输出 #2

-1

样例 #3

样例输入 #3

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

样例输出 #3

BBBW
1
1
1
2
1
1

数据范围

对所有数据,满足:

  • 2  N  100,000 2\ \leq\ N\ \leq\ 100,000
  • 1  M  200,000 1\ \leq\ M\ \leq\ 200,000
  • 1  Di  109 1\ \leq\ D_i\ \leq\ 10^9
  • 1  Ui, Vi  N 1\ \leq\ U_i,\ V_i\ \leq\ N

具体子任务评分标准如下:

子任务编号 nn\leq mm\leq 分值
11 1010 2020 2525
22 600600 min(n(n1)/2,200,000)\min(n(n-1)/2,200,000) 1010
33 100,000100,000 n+1n+1 2525
44 200,000200,000 4040

20240604集训

Not Attended
Status
Done
Rule
IOI
Problem
6
Start at
2024-6-4 18:30
End at
2024-6-4 21:00
Duration
2.5 hour(s)
Host
Partic.
17