Здравствуйте! На acmp.ru есть задача — самая сложная задача с полуфинала ВКОШП 2016/2017 Красноярского края, которую я не могу сдать. Прошу помочь разобраться, почему решение не проходит. Заранее спасибо.
Кратко условие: есть циклический массив длины n (1 ≤ n ≤ 105) из целых неотрицательных чисел (все его элементы расположены по кругу), сумма элементов которого не превосходит 109. Требуется для каждого k от 1 до n определить, можно ли разбить отрезок [1..n] массива на k непересекающихся отрезков, сумма элементов в которых равна и каждый элемент покрыт хотя бы одним отрезком. Так как массив циклический, то за элементом с индексом n следует элемент с индексом 1, таким образом, последний отрезок может переходить через границу массива.
Мое решение: пусть сумма всех элементов массива равна S, а k — количество отрезков, сумма в которых равна s. Тогда выполняется тождество S = s * k. Для каждого делителя S проверяю явно, можно ли сформировать k отрезков. Особый случай: когда сумма всех элементов равна 0, тогда возможны все значения k от 1 до n. Сначала проверяю, есть ли отрезок [l, r) (0 < = l < r < n): sum[l..r - 1] = s, затем от r до l прохожу, формируя остальные отрезки. Решение проходит 30 тестов, а на 31-м вердикт Wrong Answer.