e-olymp 2071. Три грибника

Задача

Три грибника

Три грибника

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

Сначала Пётр дал Васе и Николаю по столько грибов, сколько у них уже было. Николай быстро понял, что так будет не по-братски, и дал Василию и Петру по столько грибов, по сколько у них стало. Василий не мог отстать от сотоварищей и также дал каждому из друзей по столько грибов, сколько у них этому моменту имелось. И тут друзья с удивлением обнаружили, что у всех стало грибов поровну.

Сколько грибов было у каждого перед привалом, если известно, что все вместе они собрали [latex]n[/latex] грибов?

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

В единственной строке находится единственное натуральное число [latex]n[/latex] ([latex]n ≤ 30000[/latex]).

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

В единственной строке вывести через пробел количество грибов перед привалом у Петра, Василия и Николая, соответственно. Гарантируется, что все входные данные корректны.

Тесты

Входные данные
Выходные данные
[latex]24[/latex] [latex]13[/latex] [latex]4[/latex] [latex]7[/latex]
[latex]48[/latex] [latex]26[/latex] [latex]8[/latex] [latex]14[/latex]
[latex]72[/latex] [latex]39[/latex] [latex]12[/latex] [latex]21[/latex]
[latex]96[/latex] [latex]52[/latex] [latex]16[/latex] [latex]28[/latex]
[latex]120[/latex] [latex]65[/latex] [latex]20[/latex] [latex]35[/latex]
[latex]144[/latex] [latex]78[/latex] [latex]24[/latex] [latex]42[/latex]

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

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

Представим нашу задачу в форме таблицы, строки которой будут соответствовать грибникам, а столбцы — количеству грибов у соответствующего грибника между обменами:

П.
[latex]x_{1}[/latex] [latex]x_{2} = x_{1} — y_{1} — z_{1}[/latex] [latex]x_{3} = 2 \cdot x_{2}[/latex] [latex]x_{4} = 2 \cdot x_{3}[/latex]
В.
[latex]y_{1}[/latex] [latex]y_{2} = 2 \cdot y_{1}[/latex] [latex]y_{3} = 2 \cdot y_{2}[/latex] [latex]y_{4} = y_{3} — x_{3} — z_{3}[/latex]
Н.
[latex]z_{1}[/latex] [latex]z_{2} = 2 \cdot z_{1}[/latex] [latex]z_{3} = z_{2} — x_{2} — y_{2}[/latex] [latex]z_{4} = 2 \cdot x_{3}[/latex]

По условию задачи [latex]x_{4} = y_{4} = z_{4} = \frac n 3[/latex]. Тогда выражением нужных корней и подстановкой известных считаем [latex]x_{1}[/latex], [latex]y_{1}[/latex] и [latex]z_{1}[/latex] начиная с правого столбца и двигаясь налево:

[latex]x_{3} = \frac {x_{4}}{2} = \frac {n}{6}[/latex]
[latex]z_{3} = \frac {z_{4}}{2} = \frac {n}{6}[/latex]
[latex]y_{3} = y_{4} + x_{3} + z_{3}= \frac {n}{3} + \frac {n}{6} + \frac {n}{6} = \frac {2 \cdot n}{6}[/latex]
[latex]x_{2} = \frac {x_3}{2} = \frac {n} {12}[/latex]
[latex]y_{2} = \frac {y_3}{2} = \frac {n}{3}[/latex]
[latex]z_{2} = z_{3} + y_{2} + x_{2} = \frac {n}{6} + \frac {n}{12} + \frac {n}{3} = \frac {7 \cdot n}{12}[/latex]
[latex]y_{1} = \frac {y_{2}}{2} = \frac {n}{6}[/latex]
[latex]z_{1} = \frac {z_2}{2} = \frac {7 \cdot n}{24}[/latex]
[latex]x_{1} = x_{2} + y_{1} + z_{1} = \frac {n}{12} + \frac {n}{6} + \frac {6 \cdot n}{12} = \frac {13 \cdot n}{24}[/latex]

Получили ответы: [latex]x_{1} = \frac {13 \cdot n}{24}[/latex],  [latex]y_{1} = \frac {n}{6}[/latex] и [latex]z_{1} = \frac {7 \cdot n}{24}[/latex]. Это и будет количество грибов соответственно у Пети, Васи и Николая в самом начале. Отсюда получаем итоговую формулу решения, указанную в коде программы.

Ссылки

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

Latest posts by Павел Жуков (see all)

4 thoughts on “e-olymp 2071. Три грибника

  1. Молодец. Но такого описания — «Элементарными математическими вычислениями найдем корни» — совершенно недостаточно. Даже без объяснения того, корни чего Вы ищите. Пожалуйста, подробно покажите, как решали дальше и следите за терминологией. Я бы не стал трактовать Ваши соотношения как уравнения чтобы каждый раз не конкретизировать, относительно чего вы его разрешаете. Всё, что Вы делаете — выполняете подстановку значений в табличные соотношения в направлении справа налево. Т.е. Вам нужно сказать, что подставив найденные значения [latex]x_4, y_4, z_4[/latex] получаем такие-то формулы для [latex]x_3, y_3, z_3[/latex] и далее проделать всё подробно до получения [latex]x_1, y_1, z_1[/latex].

    Правда я когда решал задачу рассуждал менее громоздко. Просто начал с конца и восстанавливал исходную ситуацию дедуктивным методом г-на Холмса. от следствий к причинам к ним приведшим. Т.к. известно, что у всех в конце стало по [latex]\frac{n}{3}[/latex], то на предыдущем этапе было… В результате у меня получалась аналогичная таблица, но с ответами в последней строке.
    Но Ваш способ тоже хорош. Только нужно довести до конца.

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