CF859G.Circle of Numbers

NOI/NOI+/CTSC

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

n evenly spaced points have been marked around the edge of a circle. There is a number written at each point. You choose a positive real number k. Then you may repeatedly select a set of 2 or more points which are evenly spaced, and either increase all numbers at points in the set by k or decrease all numbers at points in the set by k. You would like to eventually end up with all numbers equal to 0. Is it possible?

A set of 2 points is considered evenly spaced if they are diametrically opposed, and a set of 3 or more points is considered evenly spaced if they form a regular polygon.

在圆周上均匀标记了 nn 个点,每个点上写有一个数字。你选择一个正实数 kk。然后你可以重复执行以下操作:选取一组包含 2 个或更多点的、彼此等距分布的点集,并将该点集中所有点上的数字同时增加 kk 或同时减少 kk。你的目标是最终使所有数字都变为 0。这可能吗?

两点构成的集合被视为“等距分布”,当且仅当它们互为直径端点;三点或更多点构成的集合被视为“等距分布”,当且仅当它们构成一个正多边形。

输入格式

The first line of input contains an integer n (3 ≤ n ≤ 100000), the number of points along the circle.

The following line contains a string s with exactly n digits, indicating the numbers initially present at each of the points, in clockwise order.

输入的第一行包含一个整数 nn(3≤n≤1000003 \leq n \leq 100000),表示圆周上的点的数量。

接下来的一行包含一个长度恰好为 nn 的字符串 ss,表示按顺时针顺序排列的各点上初始的数字。

输出格式

Print "YES" (without quotes) if there is some sequence of operations that results in all numbers being 0, otherwise "NO" (without quotes).

You can print each letter in any case (upper or lower).

如果存在某种操作序列使得所有数字都变为 0,则输出 "YES"(不带引号);否则输出 "NO"(不带引号)。

你可以以任意大小写形式输出每个字母(大写或小写)。

输入输出样例

  • 输入#1

    30
    000100000100000110000000001100

    输出#1

    YES
  • 输入#2

    6
    314159

    输出#2

    NO

说明/提示

If we label the points from 1 to n, then for the first test case we can set k = 1. Then we increase the numbers at points 7 and 22 by 1, then decrease the numbers at points 7, 17, and 27 by 1, then decrease the numbers at points 4, 10, 16, 22, and 28 by 1.

如果我们从 1 到 nn 对点进行编号,则对于第一个测试用例,我们可以设 k=1k = 1。然后将点 7 和点 22 上的数值各增加 1,接着将点 7、点 17 和点 27 上的数值各减少 1,最后将点 4、点 10、点 16、点 22 和点 28 上的数值各减少 1。

输入解题思路,AI测评打分。不知道怎么写?

首页