CAPPLE: Chef and Apple Trees

advertisement
CAPPLE: Chef and Apple Trees
Легенда, описанная далее, переформулирована и упрощена переводчиком, чтобы читатель мог
лучше понять условие задачи. Оригинальную легенду вы можете прочитать на странице
задачи в контесте.
Условие:
Chef очень любит готовить. В этот раз он решил приготовить специальное блюдо для Вас, и для
этого ему нужно собрать немного яблок.
В саду у Chef’а растут N яблонь. На каждой яблоне растет определенное ненулевое число яблок.
Чтобы приготовить блюдо, Chef хочет собрать яблоки с каждого дерева.
Но у Chef’а есть особый способ сбора яблок. В течение минуты он может выполнить
следующую задачу:
• Выбрать некоторое подмножество яблонь, у которых количество яблок равно.
• С каждого дерева выбранного подмножества сорвать такое количество яблок, что
количество оставшихся будет равно количеству яблок на дереве, которое не входит в
выбранное подмножество деревьев.
Если все деревья имеют одинаковое количество яблок, то Chef собирает их все за 1 минуту.
Chef не хочет заставлять вас ждать, поэтому помогите ему вычислить минимальное возможное
время для сбора всех яблок.
Формат ввода:
В первой строке содержится целое число T – количество тестов.
Далее следует описание тестов в следующем формате:
Первая строка содержит целое число N – количество яблонь.
Вторая строка содержит N разделенных одиночными пробелами целых чисел – количество
яблок на каждом из деревьев.
Формат вывода:
Для каждого теста выведите целое число – ответ на задачу.
Оценивание & ограничения:
•
•
•
1 <= T <= 10
1 <= N <= 105
1 <= количество яблок на дереве <= 105
Подзадачи:
•
•
•
Подзадача 1 (27 баллов): 1 <= T <= 10 , 1 <= N <= 103
Подзадача 2 (25 баллов): 1 <= T <= 10 , 1 <= N <= 104
Подзадача 3 (48 баллов): 1 <= T <= 10 , 1 <= N <= 105
Примеры тестов:
Входные данные:
1
2
3
333
4
1233
Выходные данные:
1
3
Пояснение:
В первом тесте Chef может выбрать все деревья и собрать яблоки за 1 минуту.
Во втором тесте существует много способов собрать яблоки за 3 минуты. Например:
• Первая минута: Выбрать третье и четвертое дерево. Собрать 1 яблоко с третьего и 2 с
четвертого.
• Вторая минута: Выбрать второе и третье дерево. Собрать по 1 яблоку с каждого.
• Третья минута: Выбрать все деревья и собрать оставшиеся яблоки.
1
Download