Puzzle #115. Задача о прожорливом программисте

Puzzle #115. Задача о прожорливом программисте

UniLecs

Разбор

Очевидно, что если мы хотим получить наименьшее время, то Олег и Егор должны закончить есть одновременно, в противном случае, один из них сможет помочь другому, уменьшив общее время.

Пусть Олег съел X1 конфет и Y1 печений, а Егор - X2 конфет и Y2 печений (значения не обязательно целые числа). Тогда для общего времени T, которое ребята потратили на еду, получаем:

T = 2 * X1 + Y1 = 5 * X2 + 3 * Y2

Причем X2 = 10 - X1, Y2 = 22 - Y1. Подставляем и получаем,

2 * X1 + Y1 = 50 - 5 * X1 + 66 - 3 * Y1

Откуда получаем значения:

Y1 = (116 - 7 * X1) / 4;

T = (X1 / 4) + 29

Заметим, что Y1 <= 22, поэтому 116 - 7 * X1 <= 88, т.е. X1 >= 4.

Значит, что наименьшее время T получается при X1 = 4 и равно 30 минутам. Олег должен съесть 4 конфеты и все печенья, а Егор - 6 конфет.


Report Page