CF357B Flag Day
题目描述
在 Berland,国庆节即将到来——旗日。为了庆祝这一节日,该国总统决定举办一场盛大的舞会,并委托你的机构来组织。总统有如下要求:
- 总共必须有 $m$ 场舞蹈;
- 每场舞蹈必须有三人参与;
- 每场舞蹈中必须各有一名穿白色、红色和蓝色服装的舞者(这些颜色构成了 Berland 国旗的颜色)。
你的机构有 $n$ 名舞者,他们的人数可能少于 $3m$,也就是说,有些舞者可能需要参与多场舞蹈。所有舞者都必须至少参加一场舞蹈。然而,如果某场舞蹈中有两名及以上的舞者已经一起参加过另一场舞蹈,那么这场舞蹈就变得不再精彩。你的机构不能让这种情况发生,也就是说,每场舞蹈中,已经参加过之前舞蹈的舞者最多只能有一人。
你已经根据所有要求为 $m$ 场舞蹈做了安排:每场都有三名舞者参与。你的任务是确定每位舞者的服装颜色,使得总统的第三个条件得以满足:每场舞蹈必须分别有一名白色、红色和蓝色服装的舞者。同一位舞者在所有场舞蹈中服装颜色都不能更换。
输入格式
第一行包含两个用空格分隔的整数 $n$($3\leq n\leq 10^{5}$)和 $m$($1\leq m\leq 10^{5}$),分别表示舞者人数和舞蹈场数。接下来有 $m$ 行,每行描述一场舞蹈。第 $i$ 行包含三个不同的整数,表示第 $i$ 场舞蹈参与的三名舞者的编号。舞者编号从 $1$ 到 $n$。每位舞者至少会参加一场舞蹈。
输出格式
输出 $n$ 个用空格分隔的整数,第 $i$ 个数表示第 $i$ 位舞者的服装颜色($1$ 表示白色,$2$ 表示红色,$3$ 表示蓝色)。如果有多组解,输出任意一种即可。保证至少存在一个解。
说明/提示
由 ChatGPT 5 翻译