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

Задача . D. Новогодний концерт


Новый год совсем близко, а это значит, что в 179-й школе уже полным ходом идет подготовка к новогоднему концерту.

Всего в школе есть \(n\) классов, пронумерованных целыми числами от \(1\) до \(n\), \(i\)-й класс подготовил сценку продолжительностью \(a_i\) минут.

Иднар, как главный за проведение новогоднего концерта, знает, что если на концерте будет \(k\) сценок продолжительностями \(b_1\), \(b_2\), \(\ldots\), \(b_k\) минут, то зрителям станет скучно, если найдутся \(l\) и \(r\) такие, что \(1 \le l \le r \le k\) и \(\gcd(b_l, b_{l + 1}, \ldots, b_{r - 1}, b_r) = r - l + 1\), где \(\gcd(b_l, b_{l + 1}, \ldots, b_{r - 1}, b_r)\) обозначает наибольший общий делитель (НОД) чисел \(b_l\), \(b_{l + 1}\), \(\ldots\), \(b_{r - 1}\), \(b_r\).

Чтобы во время концерта зрителям не стало скучно, Иднар может сколько угодно раз (возможно, ноль) попросить \(t\)-й класс (\(1 \le t \le k\)) сделать другую сценку продолжительностью \(d\), где \(d\) может быть любым целым положительным числом. Таким образом, после данной операции \(b_t\) станет равно \(d\). Заметьте, что \(t\) и \(d\) для разных операций могут быть различными.

Для последовательности продолжительностей сценок \(b_1\), \(b_2\), \(\ldots\), \(b_{k}\) определим функцию \(f(b)\) как минимальное количество классов, у которых Иднар должен попросить заменить сценку, чтобы зрителям не стало скучно.

Иднар еще точно не определился, какие сценки будут допущены на концерт, поэтому хочет узнать значение функции \(f\) от каждого из непустых префиксов \(a\). Иными словами, Иднар хочет узнать значения \(f(a_1)\), \(f(a_1\),\(a_2)\), \(\ldots\), \(f(a_1\),\(a_2\),\(\ldots\),\(a_n)\).

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

Первая строка содержит единственное целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество классов в школе.

Вторая строка содержит \(n\) целых чисел \(a_1\), \(a_2\), \(\ldots\), \(a_n\) (\(1 \le a_i \le 10^9\)) — продолжительности сценок классов.

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

В единственной строке через пробел выведите последовательность из \(n\) чисел — \(f(a_1)\), \(f(a_1\),\(a_2)\), \(\ldots\), \(f(a_1\),\(a_2\),\(\ldots\),\(a_n)\).

Примечание

В первом тесте можно заменить \(1\) на \(2\), поэтому ответ \(1\).

Во втором тесте:

  • \([1]\) можно преобразовать в \([2]\),
  • \([1, 4]\) можно преобразовать в \([3, 4]\),
  • \([1, 4, 2]\) можно преобразовать в \([2, 3, 2]\).

Примеры
Входные данныеВыходные данные
1 1
1
1
2 3
1 4 2
1 1 2
3 7
2 12 4 8 18 3 6
0 1 1 1 2 2 2

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

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