-
Notifications
You must be signed in to change notification settings - Fork 0
/
Snail.cpp
31 lines (27 loc) · 1.56 KB
/
Snail.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* Улитка
*
* Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день
* на A метров, а за ночь спускаясь на B метров. На какой день улитка доползет
* до вершины шеста?
*
* Формат входных данных
* Программа получает на вход целые неотрицательные числа H, A, B,
* причем H > B. Числа не превосходят 100.
*
* Формат выходных данных
* Программа должна вывести одно натуральное число. Гарантируется,
* что A > B.
*/
#include <iostream>
using namespace std;
int main(){
// формула для деления с округлением вверх (ceil) = ceil(a/b) = (a + b - 1) / b
int h, a, b;
cin >> h >> a >> b;
int velocity = a - b; // скорость улитки
int distance = h - a; // расстояние, которое улитка пройдет до того, как заползет на точку b
// теперь осталось разделить distance на velocity с округлением вверх (т.к. может не делиться нацело)
// и к этому прибавить единичку (учитывая последний день, когда улитка уже заползла.
cout << (distance + velocity - 1) / velocity + 1 << endl;
}