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 конфет.