본문 바로가기

code/BOJ

백준 1290 배럭

 

 

1290번: 배럭

첫재 줄에 상대방의 배럭을 파괴시키고, 상대방의 마린을 모두 죽이려고 할 때, 필요한 최소 턴의 수를 출력한다. 불가능한 경우에는 -1을 출력한다.

www.acmicpc.net

loop fision을 시도했지만 적용 불가한 문제로 판명되었다.

#include <iostream>
using namespace std;
int	N, B, U, M, TU, t;
int main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> N >> B >> U;
	for(t = 1; ; ++t) {
		B -= N;
		N -= TU;
		if (B > 0) {
			TU += U;
		}
		else {
			break;
		}
	}
	TU += B;
	for (; TU > 0 && N > 0; ++t) {
		TU -= N;
		N -= TU;
	}
	if (TU <= 0) {
		cout << t;
	}
	else {
		cout << -1;
	}
	return 0;
}