문제 링크: https://www.acmicpc.net/problem/1173

 

안되는 조건부터 생각해봅시다. M-m < T일때 운동을 절대 못하죠 그래서 이때 -1을 출력해줍니다

그 다음엔 그냥 구현하면 됩니다

#include <bits/stdc++.h>
using namespace std;


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr), cout.tie(nullptr);

	int N, m, M, T, R;
	cin >> N >> m >> M >> T >> R;

	if (M - m < T) {
		cout << -1 << '\n';
		return 0;
	}

	int turn;
	int workout;
	int x = m;
	for (turn = 0, workout = 0;
		workout < N;
		++turn) {
		if (x + T <= M) {
			x += T;
			++workout;
		}
		else {
			x = max(x-R, m);
		}
	}

	cout << turn << '\n';

	return 0;
}
반응형

'Online Judge > 백준' 카테고리의 다른 글

[백준][C++] 18891: 제21대 국회의원 선거  (0) 2020.07.29
[백준][C++] 1007: 벡터 매칭  (0) 2020.07.28
[백준][C++] 1173: 운동  (0) 2020.07.27
[백준][C++] 9935: 문자열 폭발  (0) 2020.07.27
[백준][C++] 2468: 안전 영역  (0) 2020.07.26
[백준][C++] 1059: 수2  (0) 2020.07.26