CF556B.Case of Fake Numbers

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Case of Fake Numbers

题目描述

著名侦探 Andrewid the Android 正在调查一个案子,这个案子涉及骗子们制造出假冒著名 Stolp 齿轮的仿制品,这些齿轮谜题就像曾经著名的魔方一样具有盛名。

这个谜题的核心部件包括一个按钮和一排 nn 个相同的齿轮。每个齿轮上有 nn 个齿,这些齿上依次按逆时针顺序写着 00n1n-1 的所有数字。当你按下按钮时,第一个齿轮顺时针旋转,第二个齿轮逆时针旋转,第三个齿轮再顺时针旋转,如此交替。

此外,每个齿轮上有且只有一个“激活齿”。当齿轮转动时,新的激活齿会变成当前激活齿在旋转方向上的下一个位置。例如,如果 n=5n=5,且当前激活齿是写着数字 00 的那个齿,那么顺时针旋转后,写着数字 11 的齿变为激活齿,而逆时针旋转后,写着数字 44 的齿变为激活齿。

Andrewid 记得真正的谜题有这样一个性质:你可以多次按按钮,使得最后各个齿轮上的激活齿依次组成 0,1,2,,n10,1,2,\ldots,n-1 的序列。请编写程序判断给定的齿轮谜题是真是假。

输入格式

第一行包含整数 nn1n10001 \leq n \leq 1000),表示齿轮的数量。

第二行包含 nn 个数字 a1,a2,,ana_1,a_2,\ldots,a_n0ain10 \leq a_i \leq n-1),表示每个齿轮当前激活齿上的数字。

输出格式

一行输出 "Yes"(不含引号),如果该 Stolp 齿轮谜题是真的;否则输出 "No"。

说明/提示

在第一个样例中,第一次按按钮后,激活齿序列将变为 2 2 1,再按一次后变为 0 1 2。

由 ChatGPT 5 翻译

样例

3
1 0 0
Yes
5
4 2 1 4 3
Yes
4
0 2 3 1
No

在线编程 IDE

建议全屏模式获得最佳体验