Розбір
У цій задачі сказано, що у день посадки садівник повинен був використати відро води для кожного з дерев, в останній день , в передостанній і так далі. Тобто садівник поливає дерева такою кількістю води . З цього випливає, що садівник повинен поливати дерева днів.
Нам не відомо в який день садівник почав поливати дерева, але ми знаємо, що він поливав дерева в останній день, та загалом використав не більше ніж відра води. Тому ми можемо підрахувати скільки днів садівник поливав дерева рухаючись з останнього дня.
Знаючи загальну кількість днів коли садівник планував поливати дерева () та кількість днів коли садівник поливав дерева ми можемо знайти , кількість днів які садівник пропустив.
#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"; }