[BOJ 1290] 배럭
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
4
Time limit:
2.0s
Memory limit:
128M
Problem types
Allowed languages
스타크래프트를 좋아하는 준겸이는 턴 방식의 스타크래프트 게임을 하려고 한다. 이 게임에서 가장 중요한 것은 상대의 배럭을 공격할 것인지, 마린을 생산할 것인지 결정하는 것이다.</p>
현재 준겸이는 마린 N마리를 가지고 있다. 각 턴마다 각각의 마린은 상대의 배럭을 공격해 데미지를 1 줄것인지, 상대의 마린을 공격해 게임에서 제외할 것인지 결정해야 한다. 게임의 시작시점에 상대방은 마린을 하나도 가지고 있지 않다. 하지만, 배럭의 체력은 B이고, 매 턴마다 U마리의 마린을 생산한다.
게임의 진행을 정리해보면 다음과 같다.
- 준겸이의 마린은 상대방의 마린을 공격해 게임에서 제외할 것인지, 배럭을 공격해 체력을 1 감소시킬 것인지 결정해야 한다. 이 결정은 각각의 마린마다 다르게 선택해도 된다. 배럭의 체력이 0이 되면 파괴된다.
- 상대의 모든 마린이 준겸이의 마린을 공격한다. 상대의 마린이 K마리인 경우, 준겸이의 마린 중 K마리가 게임에서 제외된다.
- 상대의 배럭이 아직 파괴되지 않았다면, 마린을 U마리 생산한다.
준겸이가 현재 가지고 있는 마린의 수 N, 배럭의 체력 B, 상대가 매 턴마다 생산하는 마린의 수 U가 주어진다. 상대의 배럭을 파괴하고, 모든 마린은 게임에서 제외시키기 위해 필요한 최소 턴의 수를 구해보자.
입력 형식
첫째 줄에 세 정수 N, B, U가 주어진다.
출력 형식
첫째 줄에 상대의 배럭을 파괴하고, 모든 마린은 게임에서 제외시키기 위해 필요한 최소 턴의 수를 출력한다. 만약, 불가능한 경우 -1을 출력한다.
예제 입력 1
10 11 15
예제 출력 1
4
예제 입력 2
1 2 1
예제 출력 2
-1
예제 입력 3
1 1 1
예제 출력 3
1
예제 입력 4
25 200 10
예제 출력 4
13
Comments