반응형
문제 : https://www.acmicpc.net/problem/2869
서론
문제 이름이 꼭 해결해주고싶게 지어졌다.
아이디어
문제를 식으로 구현해보면
지나간 날 = n
(A-B)n +B >=V
하루에 이동할 수 있는 총 거리(A-B)에 지나간 날짜를 곱해주는데
마지막날은 정상에 올라가면 내려가지 않으므로 마지막날 내려간 B를 상쇄시키기 위해 B를 더해준다.
위 식을 변형하면
n>=(V-B)/(A-B)
식을 코드로 작성하면 끝
구현
(V-B)/(A-B)가 n보다 작을 경우 +1
//c++
#include <iostream>
int main() {
long long a, b, v;
std::cin >> a >> b >> v;
long long result = (v - b) / (a - b);
if ((a - b)*result + b >= v) std::cout << result;
else std::cout << result + 1;
}
최근댓글