Previous Entry Share Next Entry
простая задача с контеста яндекса
ens_a_se
Была очень вроде бы простая задача но на n-ом тесте мое решение падает. Собственно, как я понял нет решения только если b > p. Есть чувство, что это не единственный случай когда нет решения, но туплю и не могу понять какой еще.

  • 1
А условие можно? По ссылке нельзя посмотреть

Миша достал из холодильника сыр и варёную картошку. У Миши есть микроволновка, он может класть в неё либо только сыр, либо только картошку, либо картошку и сыр сверху. Миша может неограниченное число раз включать и выключать микроволновку, но при каждом включении её функционал позволяет работать только целое число секунд.
Если подержать картошку в микроволновке меньше p секунд — она будет слишком холодной. Если ровно p секунд — возможно, суммарно за несколько заходов, — то она станет тёплой. Если больше p секунд, то картошка будет слишком горячей.
Если подержать сыр в микроволновке меньше a секунд, то он будет холодным. Если ровно a секунд, то он станет тёплым. Если больше a секунд, то он начнёт плавиться. Если подержать ровно a + b секунд, то он полностью расплавится. Если подержать больше a + b секунд, то сыр подгорит. Кроме того, если сыр начнёт плавиться, но при этом не будет лежать на картошке, то он прилипнет к тарелке, и его уже нельзя будет переложить на картошку.
Изначально картошка и сыр холодные. Миша хочет получить тёплую картошку и сверху на ней полностью расплавленный, но не подгоревший сыр. Определите минимальное число секунд, за которое с помощью микроволновки можно приготовить такое блюдо, или выясните, что это невозможно.
В этой задаче можно считать, что вне микроволновки сыр и картошка не нагреваются и не остывают.
Формат ввода

Единственная строка ввода содержит три целых положительных числа p, a и b, не превосходящих 100.
Формат вывода

Выведите минимальное число секунд, которое потребуется Мише, чтобы получить тёплую картошку и сверху на ней полностью расплавленный, но не подгоревший сыр. Если приготовить такое блюдо невозможно, выведите число -1.

Что-то я не понимаю, он может включить микроволновку на a, b или p секунд? Или операции над ними тоже можно? Или надо для всех комбинаций параметров решение найти?


Пока я поняла так что b минут сыр должен быть на картошке. Поэтому если p < b, то картошка перегреется. А минимальное число - это max (a+b, p), нет? Меньше чем требуется для приведение сыра или картошки в нужное состояние нельзя ведь греть?



Edited at 2016-06-05 10:56 am (UTC)

да, ты права. там вроде еше один случай который я не рассмотрел и ты тоже при котором не разрешима задача.

Так ты не выводишь значения, при которых не работает?

Да нет там никакого другого случая. Может заморочки на тему > или >=? Когда числа в точности совпадают?

Еше раз написал код и тесты прошли -
int res = 0;
if (b > p)
res = -1;
else
res = max(a + b,p);

Бывает тупняки какие-то.

  • 1
?

Log in

No account? Create an account