0330. Половина
Input file name: | half.in |
Output file name: | half.out |
Time limit: | 2 s |
Memory limit: | 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 |
Source: Командный чемпионат школьников Карелии по программированию, 4 ноября 2012
Discuss
Submit a solution
Printable version