1

Тема: Числа в кругу

пробую решить эту
http://www.codechef.com/problems/CHEF_GAM
суть такова: в кругу находятся N целых чисел. Ход - это следующее действие: сначала выбранное число прибавляется к своим соседям слева и справа, потом у этого числа меняется знак, то есть, если A - это массив чисел, то за один ход, выбрав kтое число, получим
A[k-1]=A[k-1]+A[k]
A[k+1]=A[k+1]+A[k]
A[k]=-A[k]
Поскольку массив "круговой", если k=0 то вместо k-1 будет последний элемент в массиве, то есть N-1. Аналогично при k = N-1 вместо k+1 будет 0.
Необходимо найти минимальное количество ходов, при котором все числа в кругу станут неотрицательными.

Любимый мною метод простого перебора даёт превышение таймлимита.

Пока вычислил следующие закономерности:

Если два раза сделать ход с одним и тем же индексом, то массив придет в изначальное состояние, то есть, на эти два хода назад.

Если например сделать ходы с индексами 2,3,2,3 - то это аналогично ходам с индексами 3,2