문제1681--흥미진진 AI 턴제 게임

1681: 흥미진진 AI 턴제 게임

[만든사람 : 이건우]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명


턴제 게임이란?
서로 한번씩 공격, 방어 등의 행동을 취하여 대결하는 게임이다.

게임 규칙
나부터 행동을 시작한다.
나의 행동이 끝난 뒤 AI의 행동이 시작된다.
나와 AI는 각각 100의 체력이 있다.
게임 도중 상대방의 체력이 0 이하가 되거나 마지막에 상대방보다 체력이 많으면 승리한다!

할 수 있는 행동은 다음과 같다. (나와 AI가 할 수 있는 행동은 같다.)
공격하기 (상대방의 체력을 30만큼 줄인다.)
물약먹기 (나의 체력을 20만큼 늘린다.)
마법쓰기 (상대방의 체력을 무작위 0~50만큼 줄인다.)

게임의 예시 진행 방식은 다음과 같다. (4번의 턴이 있다고 가정한다)
초기 상태: 내 체력: 100 / AI 체력: 100
 1번째 턴
나: 공격하기 (내 체력: 100 / AI 체력: 70)
AI: 물약먹기 (내 체력: 100 / AI 체력: 90)
2번째 턴
나: 공격하기 (내 체력: 100 / AI 체력: 60)
AI: 공격하기 (내 체력: 70 / AI 체력: 60)
3번째 턴
나: 공격하기 (내 체력: 70 / AI 체력: 30)
AI: 공격하기 (내 체력: 40 / AI 체력: 30)
4번째 턴
나: 공격하기 (내 체력: 40 / AI 체력: 0) => 나의 승리!

흥미진진한 게임을 위해 두 가지의 무작위가 존재한다.
1. AI의 행동이 무작위다!
2. 마법쓰기 기술은 0~50 까지 무작위로 체력을 줄인다!

무작위를 구현하기 위해 다음과 같은 식을 사용하고자 한다.
(Seed는 게임을 시작할 때 입력하는 무작위 숫자이다.)
 
첫 번째 턴
X1 = (17 * Seed + 35 ) % 10000
두 번째 턴
X2 = (17 * X1 + 35 ) % 10000
세 번째 턴
X3 = (17 * X2 + 35 ) % 10000
… 이후 동일한 규칙으로 진행 

턴 마다 무작위 X값이 정해지며 이 값을 사용해 무작위를 구현한다.

1. AI의 행동 무작위
다음과 같은 식으로 무작위 행동을 결정한다.
X % 3
0 일 경우 공격하기를 선택한다.
1 일 경우 물약먹기를 선택한다.
2 일 경우 마법쓰기를 선택한다.
 
2. 마법 쓰기의 무작위 위력
다음과 같은 식으로 체력 줄이는 정도를 결정한다. (AI와 나는 동일한 위력을 갖는다.)
(X + 1 ) % 51

난수 적용예시
만약 Seed가 16763 일 경우
X1 = (17 * 16763 + 35 ) % 10000 = 5006 이다.
X2 = (17 * 5006 + 35 ) % 10000 = 5137 이다.
X3 = (17 * 5137 + 35 ) % 10000 = 7364 이다.

게임 적용 예시

첫 번째 턴 설명
AI 행동 무작위 생성식은
5006 % 3 
즉 2이며 이는 마법쓰기에 해당된다.

마법 쓰기의 식은
(5006 + 1) % 51
즉, 9이며 상대방의 체력을 9만큼 줄인다.

두 번째 턴 설명
AI 행동 무작위 생성식은
5137 % 3 
즉, 1이며 이는 물약먹기에 해당된다.

세 번째 턴 설명
AI 행동 무작위 생성식은
7364 % 3 
즉, 2이며 이는 마법쓰기에 해당된다.

마법 쓰기의 식은
(7364 + 1) % 51
즉, 21이며 상대방의 체력을 21만큼 줄인다.

3번째 턴 까지 정리한 내용이다.

AI 1번째 턴 행동: 마법쓰기(9의 체력을 줄인다.)

AI 2번째 턴 행동: 물약먹기

AI 3번째 턴 행동: 마법쓰기(21의 체력을 줄인다.)

시드값과 나의 행동을 입력했을 때 누가 이겼는지 출력하는 프로그램을 작성해라!

입력 설명

첫 번째 줄에 Seed를 입력한다. Seed의 범위는 (1 ~ 100000) 이다.

두 번째 줄에 턴의 수를 입력한다. 범위는 (1 ~ 20) 이다.

세 번째 줄부터 턴의 수만큼 나의 행동을 입력한다.

0 – 공격하기

1 – 물약먹기

2 – 마법쓰기


출력 설명

승패가 출력이 된다.

마지막 명령 수행 후 나의 체력이 많거나 도중에 AI의 체력이 0 이하로 떨어졌을 경우 “승리

마지막 명령 수행 후 AI의 체력이 많거나 도중에 나의 체력이 0 이하로 떨어졌을 경우 “패배

체력이 동일하다면 “무승부

라고 출력이 된다.


입력 예시 Copy

56644
4
0
0
1
2

출력 예시 Copy

승리

출처/분류