Была очень вроде бы простая задача но на n-ом тесте мое решение падает. Собственно, как я понял нет решения только если b > p. Есть чувство, что это не единственный случай когда нет решения, но туплю и не могу понять какой еще.
Миша достал из холодильника сыр и варёную картошку. У Миши есть микроволновка, он может класть в неё либо только сыр, либо только картошку, либо картошку и сыр сверху. Миша может неограниченное число раз включать и выключать микроволновку, но при каждом включении её функционал позволяет работать только целое число секунд. Если подержать картошку в микроволновке меньше 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), нет? Меньше чем требуется для приведение сыра или картошки в нужное состояние нельзя ведь греть?
Если подержать картошку в микроволновке меньше p секунд - она будет слишком холодной. Если ровно p секунд - возможно, суммарно за несколько заходов, - то она станет тёплой. Если больше p секунд, то картошка будет слишком горячей.
Если подержать сыр в микроволновке меньше a секунд, то он будет холодным. Если ровно a секунд, то он станет тёплым. Если больше a секунд, то он начнёт плавиться. Если подержать ровно a + b секунд, то он полностью расплавится. Если подержать больше a + b секунд, то сыр подгорит. Кроме того, если сыр начнёт плавиться, но при этом не будет лежать на картошке, то он прилипнет к тарелке, и его уже нельзя будет переложить на картошку.
Изначально картошка и сыр холодные. Миша хочет получить тёплую картошку и сверху на ней полностью расплавленный, но не подгоревший сыр. Определите минимальное число секунд, за которое с помощью микроволновки можно приготовить такое блюдо, или выясните, что это невозможно.
В этой задаче можно считать, что вне микроволновки сыр и картошка не нагреваются и не остывают.
Формат ввода
Единственная строка ввода содержит три целых положительных числа p, a и b, не превосходящих 100.
Формат вывода
Выведите минимальное число секунд, которое потребуется Мише, чтобы получить тёплую картошку и сверху на ней полностью расплавленный, но не подгоревший сыр. Если приготовить такое блюдо невозможно, выведите число -1.
Reply
Что-то я не понимаю, он может включить микроволновку на a, b или p секунд? Или операции над ними тоже можно? Или надо для всех комбинаций параметров решение найти?
Пока я поняла так что b минут сыр должен быть на картошке. Поэтому если p < b, то картошка перегреется. А минимальное число - это max (a+b, p), нет? Меньше чем требуется для приведение сыра или картошки в нужное состояние нельзя ведь греть?
Reply
Reply
Reply
Reply
int res = 0;
if (b > p)
res = -1;
else
res = max(a + b,p);
Бывает тупняки какие-то.
Reply
Leave a comment