#2831. 抓内鬼

抓内鬼

题目描述

UR#24 的题面被内鬼偷走了!

为了找回丢失的题面,uoj 管理员决定和 pjudge 管理员合作,让内鬼无路可逃。

内鬼在一个 $n$ 个点 $m$ 条边的简单无向连通图上行走,他从 $1$ 号点出发,目标是 $n$ 号点。

uoj 和 pjudge 分别抓了 $k$ 和 $n-k$ 个壮丁。图上的每个点会恰好分配一个壮丁,负责盘问来往行人。因为人流量不同,一个人经过第 $i$ 个点需要花费的时间是 $t_i$ 。经过一条边的时间可以忽略不计。

uoj 的壮丁很清楚其他 uoj 的壮丁都是鸽子,pjudge 的壮丁也很清楚其他 pjudge 的壮丁都是鸽子,但他们相互不知道对方是不是鸽子。所以,只有当内鬼经过的一条边的两边的壮丁来自同一个 oj 时,他才会被抓住。

你需要构造一个分配壮丁的方案,使得对于任意一条 $1$ 到 $n$ 的最短路,内鬼走这条路都会被抓住。或者判断无解。

输入格式

第一行三个正整数 $n,m,k$ 。

第二行 $n$ 个正整数 $t_1,t_2,\cdots,t_n$ 。

接下来 $m$ 行,每行两个正整数 $u_i,v_i$ ,表示无向图中的一条边。

输出格式

如果存在合法方案,那么输出一个长度为 $n$ 的字符串 $s$ ,其中 $s_i\in \{'P', 'U'\}$ 表示第 $i$ 个点的壮丁是来自 pjudge 还是 uoj 。

否则,输出 impossible

样例一

input

3 2 0
1 1 1
1 2
2 3

output

PPP

explanation

uoj 一个壮丁都没有抓到!但是这样就使得每条边的两边的壮丁都来自 pjudge ,因此内鬼走任意一条边都会被抓住。

样例二

input

2 1 1
1 1
1 2

output

impossible

explanation

uoj 和 pjudge 的壮丁互相认为对方会认真盘查,于是自己当鸽子,结果内鬼跑掉了!

样例三

input

8 9 4
3 3 1 2 2 3 2 1
1 2
1 3
1 4
2 5
3 6
4 7
5 8
6 8
7 8

output

PUPUPPUU

样例四、五、六

见下发文件。

数据范围

本题采用子任务捆绑测试。

对于所有数据,保证 $2\le n\le 10^5, 1\le m\le 2\times 10^5, 0\le k\le n, 1\le t_i\le 10^4$ 。

子任务编号 特殊性质 分值
$1$ $n\le 15$ $20$
$2$ $k=1$ $30$
$3$ $u_i\in \{1,n\}$ 或 $v_i\in \{1,n\}$ $30$
$4$ $ $ $20$

时间限制:$\texttt{3s}$

空间限制:$\texttt{1024MB}$