[BOJ 1290] 배럭

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

스타크래프트를 좋아하는 준겸이는 턴 방식의 스타크래프트 게임을 하려고 한다. 이 게임에서 가장 중요한 것은 상대의 배럭을 공격할 것인지, 마린을 생산할 것인지 결정하는 것이다.</p>

현재 준겸이는 마린 N마리를 가지고 있다. 각 턴마다 각각의 마린은 상대의 배럭을 공격해 데미지를 1 줄것인지, 상대의 마린을 공격해 게임에서 제외할 것인지 결정해야 한다. 게임의 시작시점에 상대방은 마린을 하나도 가지고 있지 않다. 하지만, 배럭의 체력은 B이고, 매 턴마다 U마리의 마린을 생산한다.

게임의 진행을 정리해보면 다음과 같다.

  1. 준겸이의 마린은 상대방의 마린을 공격해 게임에서 제외할 것인지, 배럭을 공격해 체력을 1 감소시킬 것인지 결정해야 한다. 이 결정은 각각의 마린마다 다르게 선택해도 된다. 배럭의 체력이 0이 되면 파괴된다.
  2. 상대의 모든 마린이 준겸이의 마린을 공격한다. 상대의 마린이 K마리인 경우, 준겸이의 마린 중 K마리가 게임에서 제외된다.
  3. 상대의 배럭이 아직 파괴되지 않았다면, 마린을 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

There are no comments at the moment.