Разбор
В задаче сказано, что в день посадки садовник должен был использовать ведро воды для каждого из деревьев, в последний день , в предпоследней и так далее. То есть садовник поливает деревья таким количеством воды . Из этого следует, что садовник должен поливать деревья дней.
Нам не известно в какой день садовник начал поливать деревья, но мы знаем, что он поливал деревья в последний день, и в общем использовал не более ведра воды. Поэтому мы можем подсчитать сколько дней садовник поливал деревья, двигаясь с последнего дня.
Зная общее количество дней когда садовник планировал поливать деревья () и количество дней когда садовник поливал деревья мы можем найти , количество дней, которые садовник пропустил.
#include <bits/stdc++.h> using namespace std; int main() { int n, m = 0; cin>>n; // Считываем количество деревьев double v = 0; for (int i = n; i >= 1; --i) { v += 1.0 / i; if (v > 0.5) { // Убедимся, что общее количество воды не превышает половину ведра break; } m++; // Подсчитаем количество дней в которые садовник поливал деревья } cout<<n - m<<"\n"; }