Удалить минимальное количество лезвий

Недавно столкнулся с этой проблемой на Тимус онлайн судья . Для людей, не желающих переходить по ссылке. Вопрос такой:

Приезжают опытные участники Чемпионата Урала. Екатеринбург заранее, чтобы привыкнуть к суровой погоде. условий, прогулки по городу и, конечно же, посещение «Лимпопо». Аквапарк. Не многие знают, что рядом с г. аквапарк, а это растение местные жители называют «Ошибка 404». В растение действительно непросто найти, а еще труднее узнать, что там происходит.К счастью, за заводом можно наблюдать от ближайшего пешеходного моста. Из-за кажущейся тишины и запустение завода, можно подумать, что он не работает, Но это не так. Основное направление работы завода - ремонт авиационные двигатели. Некоторое время назад завод получил заказ на ремонт. сломанный газотурбинный двигатель. Оказалось, что некоторые лезвия были порваны выключено, что привело к чрезмерной нагрузке на вал двигателя. Эксперты в на заводе решили, что двигатель можно быстро отремонтировать, удаление части неповрежденных лезвий так, чтобы центр масс оставшиеся лопасти снова окажутся на оси вращения. Чтобы сохранить мощность двигателя как можно больше, минимальное количество лопастей должно удалить. Необходимо оставить хотя бы одну лопасть, иначе двигатель вообще не будет работать. Специалисты утверждают, что когда все лезвия были неповрежденными, их концы образовывали правильный n-угольник. Скажите им, какие лезвия следует удалить.

> Input The first line contains the initial number of blades in the
> turbine n and the number of torn blades k (3 ≤ n ≤ 20000; 1 ≤ k ≤ n −
> 1). The integer n has at most two distinct prime divisors. The next
> line contains k integers, which are the numbers of the torn blades in
> ascending order. The blades are numbered from 1 to n clockwise. 
Output
> In the first line output the minimum number of blades that should be
> removed. In the second line output the numbers of these blades in any
> order separated with a space. If several answers are possible, output
> any of them. If it is impossible to repair the engine by removing some
> of the blades, output “−1”. 
> 

У меня не получается настроить эту проблему. Моя первоначальная мысль заключается в том, что, поскольку центр масс необходимо восстановить, сломанное лезвие должно быть окружено равным количеством неразрушенных лезвий.

Таким образом, если мы представим сломанное лезвие как 0, а целое лезвие как 1, конкретная конфигурация может быть представлена ​​как: 011

Я не уверен, что нахожусь на правильном пути, и некоторые отзывы помогут мне понять эту проблему.

Спасибо

7
задан sc_ray 14 January 2012 в 01:46
поделиться