Надо увидеть, что результат зависит от количества нажатий на каждую кнопку, но не от их последовательности. Далее надо сделать перебор небольшого количества вариантов. В данном случае ситуация симметрична и есть самая опустошающая кнопка. Поэтому просто пишем вариант нажатий и рядом количество оставшейся воды:
и так далее. Потом выбираем лучший вариант. В Вашей задаче можно, конечно, обозначить буквами количество нажатий, а потом посмотреть алгебраический итог и оптимизировать его. Кстати, максимальное опустошение можно трактовать по разному. То ли это минимизация общего количества воды, то ли минимизация воды в максимально наполненном ведре. Ещё некорректность: "30 мл" или же "по 30 мл"?
Бывают, кстати, условия, когда порядок нажатий имеет значение. Например, выливание фиксированного количества воды, либо выливание определённой его части. Бывают совершенно несимметричные ситуации. Бывает огромное количество нажатий. Но в Вашем случае я бы не стал стрелять из пушки по воробьям, а просто рассмотрел несколько возможных вариантов.