0330. Половина
Имя входного файла: | half.in |
Имя выходного файла: | half.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
У доброжелательного Даниила есть несколько яблок. В силу своей природной доброжелательности, каждый раз, когда он встречает какого-либо своего друга, он смотрит на яблоки, которые у него есть и отдает другу половину.
Но Даниил не одинаково любит всех своих друзей, поэтому некоторым из них он отдает половину яблока, а некоторым – половину имеющихся у него яблок. При этом с глазомером у Даниила не так хорошо, как со щедростью, и делить яблоки более, чем на две части, у него не получается. Поэтому, если он встречает друга, а у него нецелое число яблок, то он вынужден отдать половину яблока.
Утром у Даниила было n яблок, а за день Даниил встретил k друзей. Выясните, сколько яблок у него могло остаться вечером.
Формат входного файла
Входной файл содержит два целых числа: n – количество яблок у Даниила и k – количество встреченных им за день друзей (1 ≤ n ≤ 1000, 1 ≤ k ≤ 1000).
Формат выходного файла
Первая строка выходного файла должна содержать число m – количество вариантов ответа на вопрос, сколько яблок может быть у Даниила вечером. Следующая строка должна содержать m вещественных чисел, отсортированных по возрастанию – варианты ответов.
Пример:
half.in | half.out |
---|---|
6 1 | 2 3.0 5.5 |
Источник: Командный чемпионат школьников Карелии по программированию, 4 ноября 2012
Обсудить
Отправить решение
Версия для печати