CF899B Months and Years
题目描述
俄罗斯所有人都使用公历。公历中,1 月有 $31$ 天,2 月有 $28$ 或 $29$ 天(取决于年份是否为闰年),3 月有 $31$ 天,4 月有 $30$ 天,5 月有 $31$ 天,6 月有 $30$ 天,7 月有 $31$ 天,8 月有 $31$ 天,9 月有 $30$ 天,10 月有 $31$ 天,11 月有 $30$ 天,12 月有 $31$ 天。
如果某一年满足以下两个条件之一,则该年为闰年:一是该年能被 $4$ 整除但不能被 $100$ 整除,二是该年能被 $400$ 整除。比如 $2000$ 年、$2004$ 年是闰年,但 $1900$ 年和 $2018$ 年不是闰年。
在本题中,给定 $n$ 个整数 $a_{1},a_{2},...,a_{n}$,你需要判断这些整数能否作为某些连续月份的天数——这些月份按照公历排列,可以跨越几个连续的年份。也就是说,判断是否存在某一年中的某个月份,使得该月的天数为 $a_{1}$,下一个月的天数为 $a_{2}$,依此类推。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 24$)——要检查的整数个数。
第二行包含 $n$ 个整数 $a_{1},a_{2},...,a_{n}$($28 \leq a_{i} \leq 31$)——需要检查的天数序列。
输出格式
如果存在若干连续的月份,其天数与给定序列吻合,输出 "YES"(不带引号);否则输出 "NO"(不带引号)。
你可以以任意大小写输出(如小写或大写)。
说明/提示
在第一个样例中,这些整数可以代表 7 月、8 月、9 月和 10 月。
在第二个样例中,答案为 NO,因为没有连续的两个月份都是 $30$ 天。
在第三个样例中,这些月份依次为:2 月(闰年)— 3 月 — 4 月 — 5 月 — 6 月。
在第四个样例中,第二个月的天数是 $28$,因此是 2 月。3 月紧接着 2 月,且 3 月有 $31$ 天,而不是 $30$ 天,所以答案为 NO。
在第五个样例中,这些月份分别为:12 月 — 1 月 — 2 月(平年)。
由 ChatGPT 5 翻译