MemSQL Start[c]UP 3.0 - Round 1
G
Circle of Numbers
Codeforces
3000
原题
← F→
翻译中…

$*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.

翻译中…

Input

翻译中…

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.

翻译中…

Output

翻译中…

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).

翻译中…

Note

翻译中…

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$.

翻译中…

样例

Input #1
30
000100000100000110000000001100
Output #1
YES
InputCopy OutputCopy
Input #2
6
314159
Output #2
NO
InputCopy OutputCopy
题目信息
题号
859G
时间限制
1 s
内存限制
256 MB
标签
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。