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$