CF1266A Competitive Programmer

题目描述

Bob 是一名竞技程序员。他想成为红名选手,为此他需要严格的训练计划。他去参加了一年一度的大师聚会,并询问了 $n$ 位大师,他们为了成为红名选手付出了多少努力。 “哦,我只是花了 $x_i$ 小时刷题。”第 $i$ 位大师这样回答。 Bob 想要锻炼自己的数学能力,于是他把每个答案都记成了分钟数($60 \cdot x_i$),感谢了这些大师后就回家了。Bob 记录数字时可能会写前导零——例如,如果某位大师回答他花了 $2$ 小时,Bob 可能会写成 $000120$ 而不是 $120$。 Alice 想要捉弄 Bob,于是她把 Bob 记录下来的数字,每个都独立地进行了如下操作之一: - 重新排列这个数字的所有数字,或者 - 随便写了一个随机数字。 这样,Alice 生成了 $n$ 个数字,记为 $y_1, \ldots, y_n$。 对于每个数字,请帮助 Bob 判断 $y_i$ 是否可以通过重新排列其数字(允许前导零)得到一个能被 $60$ 整除的数字。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 418$),表示 Bob 询问的大师人数。 接下来有 $n$ 行,第 $i$ 行包含一个整数 $y_i$,表示 Alice 写下的数字。 每个数字由 $2$ 到 $100$ 位数字 $0$ 到 $9$ 组成,可能包含前导零。

输出格式

输出 $n$ 行。 对于每个 $i$,如果可以通过重新排列 $y_i$ 的数字得到一个能被 $60$ 整除的数字,输出 red;否则输出 cyan。

说明/提示

在第一个样例中,有一种重排方式可以得到能被 $60$ 整除的数字,即 $360$。 在第二个样例中,有两种方案,分别是 $060$ 和 $600$。 在第三个样例中,共有 $6$ 种重排方式:$025$、$052$、$205$、$250$、$502$、$520$,但没有一种能被 $60$ 整除。 在第四个样例中,共有 $3$ 种重排方式:$228$、$282$、$822$。 在第五个样例中,$24$ 种重排方式都无法得到能被 $60$ 整除的数字。 在第六个样例中,注意 $000\dots0$ 也是一个合法解。 由 ChatGPT 4.1 翻译