Снежный Ветер
Мастер
(1923)
7 часов назад
#include <iostream>
using namespace std;
int main() {
long long p, m, k, x, z;
cin >> p >> m >> k >> x >> z;
long long days = 0;
while (x < z) {
days++;
x += k;
if (days > 100000) { // Предотвращение бесконечного цикла
days = -1;
break;
}
}
cout << days << endl;
return 0;
}
Пояснение кода:
Ввод данных: Программа считывает пять целых чисел, представляющих параметры задачи: P (вместимость корзины Пети), M (вместимость корзины Миши), K (количество грибов, вырастающих за ночь), X (количество грибов после сбора Петей), Z (минимальное требуемое количество грибов).
Цикл while: Программа использует цикл while, чтобы моделировать рост грибов со временем. Цикл продолжается до тех пор, пока количество грибов (x) не станет не меньше, чем Z.
Рост грибов: Внутри цикла к количеству грибов (x) добавляется количество грибов, вырастающих за ночь (k).
Проверка на бесконечный цикл: Добавлена проверка if (days > 100000) для предотвращения ситуации, когда количество грибов никогда не достигнет Z. В этом случае переменная days устанавливается в -1.
Вывод результата: Программа выводит количество дней (days), за которое количество грибов достигнет или превысит Z. Если же за 100000 дней это не произошло, выводится -1.
Важно: В этой задаче не учитываются сборы Миши по воскресеньям, так как условие задачи фокусируется на моменте, когда на поляне останется X грибов после сбора Пети. Если бы требовалось учитывать сборы обоих мальчиков, логика программы была бы сложнее.