Олимпиадный тренинг

Задача . G. Круг чисел


Задача

Темы: математика *3000

n расположенных на равном расстоянии точек отмечены на окружности. Около каждой точки написано число. Вы можете выбрать любое вещественное число k. Затем вы можете несколько раз выбирать множество из 2 или более точек, расположенных на равных расстояниях по окружности, и либо увеличивать все числа, написанные около точек множества, на k, либо уменьшать на k. Вы хотите сделать так, чтобы все числа были равны 0. Возможно ли это?

2 точки расположены на окружности на равных расстояниях, если они диаметрально противоположны. 3 и более точки расположены на окружности на равных расстояниях, если они образуют правильный многоугольник.

Входные данные

Первая строка содержит целое число n (3 ≤ n ≤ 100000) — количество точек на окружности.

Следующая строка содержит строку s из ровно n цифр, каждая цифра равна числу, написанному около очередной точки, по часовой стрелке.

Выходные данные

Выведите «YES» (без кавычек), если существует последовательность операций, обращающая все числа в 0, и «NO» (без кавычек) иначе.

Вы можете выводить каждую букву в любом регистре (заглавную или строчную).

Примечание

Если мы пронумеруем точки от 1 до n, то в первом примере мы можем выбрать k = 1. Затем увеличим числа в точках 7 и 22 на 1, затем уменьшим числа в точках 7, 17, и 27 на 1, затем уменьшим числа в точках 4, 10, 16, 22, и 28 на 1.


Примеры
Входные данныеВыходные данные
1 30
000100000100000110000000001100
YES
2 6
314159
NO

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя