UVA1391 Astronauts
题目描述
有 $A$、$B$、$C$ 三个任务,要分配给 $n$ 个宇航员,每个宇航员都必须要且只能分配到一个任务。
设所有宇航员的平均年龄为 $x$,只有年龄大于等于 $x$ 的才能分配 $A$ 任务,年龄小于 $x$ 的才能分配 $B$ 任务,$C$ 任务没有限制。
同时,有 $m$ 对宇航员互相讨厌对方,因此不能分配同一个任务。请你构造出一组在满足以上限制的情况下可行的解,若无解输出 `No solution.`。
输入格式
输入包含多组数据。
对于每组数据,第一行包含两个整数 $n,m$,若 $n=m=0$ 则代表输入结束,对于该组数据你不需要输出任何东西。
接下来 $n$ 行,每行一个整数,表示一名宇航员的年龄。
接下来 $m$ 行,每行两个整数 $u,v$,表示 $u$ 号宇航员和 $v$ 号宇航员不能分配同一个任务。宇航员的编号从 $1$ 开始。
输出格式
对于每组数据:
- 若无解输出一行 `No solution.`。
- 否则输出 $n$ 行,第 $i$ 行输出一个字符(`A`、`B` 或 `C`),表示第 $i$ 名宇航员分配到了哪个任务。
说明/提示
宇航员的年龄在 $0$ 到 $200$ 之间。
$1\le n,m\le 100000$