June 20, 2020
달팽이가 낮에 A만큼 올라가고 밤에 B만큼 미끄러질 때, 길이가 V인 나무막대의 꼭대기에 도착하기까지 몇 일이 걸리는 지 계산하는 수학 문제다.
시간 제한 내로 풀기 위해서는 식을 만들어서 상수시간 내로 처리해야겠다.
이 문제에서 파악할 점은 정상에 올라간 후에는 미끄러지지 않는다 는 것이다.
그렇기 때문에 도달하는 날(마지막 날) 낮에는 정상에 도착하기 때문에 밤까지 계산하지 않고, 마지막 날은 제외하고 몇 일이 걸리는 지 먼저 계산한다.
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int a, b, v;
cin >> a >> b >> v;
int days = (v - a) / (a - b);
if ((v - a) % (a - b) == 0)
{
cout << days + 1 << '\n';
}
else
{
cout << days + 2 << '\n';
}
return 0;
}