#P14066. [PO Final 2022] 分组 / Triangeltal
[PO Final 2022] 分组 / Triangeltal
题目描述
在一所班级里有 名学生,现在到了必须进行的演讲环节。大多数学生都非常期待演讲,恨不得立刻轮到自己。但在此之前,需要先把他们分成 3 个小组。随后,组 1 的所有人会向组 2 演讲,组 2 向组 3 演讲,组 3 向组 1 演讲。
让分组变得复杂的是,学生的追求程度不同。每位学生 要求自己至少要在 位听众面前演讲,其中 为正整数。举例而言,如果学生 被分到组 1,那么为了让学生 满意,组 2 必须至少有 名成员。这个要求对三组按循环关系成立:
- 若学生 在第 1 组,则第 2 组的人数至少为 。
- 若学生 在第 2 组,则第 3 组的人数至少为 。
- 若学生 在第 3 组,则第 1 组的人数至少为 。
给定这 个数 ,你的任务是判断是否存在一种把学生分成三组的方法,使得所有学生都满意;如果存在,请找出一种合法的分组。
输入格式
第一行包含一个整数 ()。
第二行包含 个整数 ()。
输出格式
如果不存在合法分组,输出仅包含字符串 的一行。
如果存在合法分组,先输出一行字符串 。随后输出一行字符串 ,它由字符 1、2 和 3 组成。字符串中第 个位置的字符表示学生 被分到了哪一组。如果有多种解,输出任意一种均可。
10
1 3 1 3 3 2 4 1 5 2
YES
3313332121
3
1 2 2
NO
提示
子任务
本题采用捆绑测试。 | 子任务编号 | 得分 | 限制 | |:-:|:-:|---| | | | | | | | | | | | | | | | | | | | 无额外限制 |