e-olymp 340. Раз – горох, два – горох…

Задача

Приближалась зима, и Хома с Сусликом решили запастись горохом. Весь день они бегали в амбар и таскали по несколько стручков: Хома по четыре, а Суслик по два. К вечеру они пересчитали все стручки, что они натаскали, и задумались, как теперь этот горох делить. Хома утверждал, что если он за раз тащил в два раза больше, чем Суслик, то и гороха ему должно достаться в два раза больше. Суслик на это резонно возражал, что, во-первых, скорость у Хомы заметно меньше, чем у Суслика, а, во-вторых, кто его знает, может Хома всего раз-два сбегал, а остальное время бездельничал…

Помогите друзьям хоть немного разобраться в этой сложной ситуации. Определите все возможные варианты того, сколько стручков притащил Суслик, а сколько Хома.

Входные данные

В первой строке натуральное четное число [latex]M[/latex] – количество украденных стручков, [latex]2 ≤ M ≤ 1000[/latex].

Выходные данные

Все возможные сочетания количеств стручков, принесенных Сусликом и Хомой по одному сочетанию в строке. Каждое сочетание представляет собой два целых неотрицательных числа через пробел: первое число – количество стручков, принесенных Сусликом, второе – принесенных Хомой. Сочетания упорядочить по убыванию первого числа.

Тесты

Входные данные Выходные данные
[latex]6[/latex] [latex] \\ 6 \; 0 \\ 2 \; 4[/latex]
[latex]11[/latex] [latex]\\ 11\;0 \\ 7\;4 \\ 3\;8[/latex]
[latex]18[/latex] [latex]\\ 18\;0 \\ 14\;4 \\ 10\;8 \\ 6\;12 \\ 2\;16[/latex]

Код программы

Решение задачи

Пусть [latex]a[/latex] — количество стручков, принесенных Хомой и [latex]b[/latex] — количество стручков, принесенных Сусликом. Так как по условию задачи Хома таскал только по четыре стручка, мы будем считать [latex]a = a-4[/latex] и [latex]b = b + 4[/latex], чтобы таким образом перебрать все возможные сочетания количеств стручков, принесенных Сусликом и Хомой. Также воспользуемся циклом while, который будет повторять действие, описанное выше, до тех пор, пока [latex]a \geq 0[/latex]. В ответе выводим все возможные сочетания количеств стручков, принесенных друзьями по одному в строке, упорядоченные по убыванию первого числа.

Ссылки

Условие задачи на e-olymp
Код решения на ideone

Related Images:

2 thoughts on “e-olymp 340. Раз – горох, два – горох…

  1. Хорошо. На будущее старайтесь не конкретизировать какими именно программными средствами будет реализован алгоритм. Если что-то нужно уменьшать на 4 пока не достигнем нуля, то этим уже всё сказано. Будет тут цикл for, while или рекурсивная функция, зависит от реализации. Я, например, делал так:

Добавить комментарий