题目描述

Y 同学把 nn 个刻度均匀放在一个圆上,第 ii 个刻度上写着一个数字 sis_i。他可以先选择一个正实数 kk,之后重复执行若干次操作:选择圆上一组不少于两个、且在圆周上均匀分布的刻度,把这一组刻度上的数字同时加上 kk 或同时减去 kk

两点恰好相对时也视为均匀分布;三点及以上时,它们需要构成正多边形的顶点集合。Y 同学可以选择任意多次操作,也可以在不同操作中选择不同大小、不同起点的均匀点集。

给定初始数字串,请判断是否存在某个 k>0k>0 与一系列操作,使得最后所有刻度上的数字都变为 00

输入格式

第一行包含一个整数 nn

第二行包含一个长度为 nn 的数字串 ss,第 ii 个字符表示 sis_i

输出格式

若可以全部变为 00,输出 YES;否则输出 NO

样例

样例输入 #1

6
101101

样例输出 #1

YES

数据范围与约定

对于 100%100\% 的数据,保证 2n1052\le n\le10^5ss 只包含字符 09

测试点编号 分值 范围 特殊性质
141\sim4 1616 n10n\le10
585\sim8 n105n\le10^5 保证 nn 为质数
9129\sim12 1818 保证所有字符相同
131613\sim16 2020 n5000n\le5000
172217\sim22 3030 n105n\le10^5

特殊性质 A:保证 nn 为质数。 特殊性质 B:保证所有字符相同。