주어진 길이를 전부 올라가는데 걸리는 시간을 출력한다.
#include <iostream>
using namespace std;
int main()
{
int input[3]; // 입력
for(int i=0;i<3;i++)
{
cin >> input[i];
}
int day=(input[2]-input[0])/(input[0]-input[1]); // 마지막 날 전까지 소요되는 날들
if(((input[2]-input[0])%(input[0]-input[1]))) // day가 정수가 아니라면 하루 더 써야 함
{
day+=1;
}
cout << day +1; // 마지막 날 더하기
}
막대를 올라가는 최종적인 날을 제외하고, 첫날부터 마지막 날 직전의 날까지를 우선 구한다.
이렇게 하는 이유는 마지막 날에 정상에 다다르면 미끄러지지 않고 그대로 끝나기 때문이다.
int day=(input[2]-input[0])/(input[0]-input[1]);
올라가야 하는 길이에서 낮마다 올라갈 수 있는 길이를 빼고, 하루마다 올라갈 수 있는 길이(낮에 올라간 길이-밤에 미끄러지는 길이)로 나누어 첫날부터 마지막 날 전까지 며칠이 소모되는지 구한다.
그런데 앞서 구한 날짜가 정수면 상관없지만, 정수가 아니라면 하루를 더 소모해야 해야 하니 날짜에 1을 더한다.
최종적으론 마지막 날도 포함해 1을 더해 출력한다.
구한 날짜가 정수가 아니면 하루를 더 소모해야 한다.