용이 되어 싸우기
시간 제한5초메모리 제한512 MB
드래곤과 기사의 능력치가 주어질 때 공격, 강화, 회복, 약화 행동으로 기사를 쓰러뜨리는 최소 턴 수를 구하고, 불가능하면 보고한다.
문제
당신은 굴을 지키는 친절한 용이고, 굴을 노리는 탐욕스러운 기사와 싸우고 있다. 당신의 체력은 , 공격력은 이며 기사의 체력은 , 공격력은 이다. 어느 시점이든 당신의 체력이 0 이하가 되면 당신이 쓰러져 그 즉시 패배한다. 기사의 체력이 0 이하가 되면 기사가 쓰러지고 당신이 승리한다.
전투는 턴 단위로 진행된다. 각 턴에서 당신이 먼저 행동하며, 아래 네 가지 중 정확히 하나를 골라 실행한다.
- 공격: 상대의 체력을 자신의 공격력만큼 줄인다.
- 강화: 남은 전투 동안 자신의 공격력을 만큼 올린다.
- 회복: 자신의 체력을 로 만든다.
- 약화: 남은 전투 동안 상대의 공격력을 만큼 낮춘다. 이 값이 0보다 작아지면 대신 0이 된다.
당신이 행동한 뒤 기사의 체력이 0보다 크면 기사가 공격하고, 그다음 턴이 끝난다. 기사를 쓰러뜨린 턴에는 기사가 행동하지 못하지만, 그 턴도 턴 수에 포함한다.
강화는 중첩된다. 강화할 때마다 공격력이 씩 더 올라간다. 약화도 같은 방식으로 중첩된다.
오늘 밤 축제에서 마을 사람들과 마시멜로를 구우려면 늦으면 안 되니, 기사를 최대한 빨리 쓰러뜨리려 한다. 기사를 쓰러뜨리는 데 필요한 최소 턴 수를 구하거나, 쓰러뜨릴 수 없다는 것을 판정하라.
입력
첫째 줄에 테스트 케이스의 수 가 주어진다. 이어지는 개의 줄에 각각 여섯 정수 , , , , , 가 공백으로 구분되어 주어진다.
제한
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 기사를 쓰러뜨리는 데 필요한 최소 턴 수다. 기사를 쓰러뜨릴 수 없으면 y 자리에 IMPOSSIBLE을 출력한다.
힌트
첫 번째 테스트 케이스에서 당신의 체력은 11, 공격력은 5이고 기사의 체력은 16, 공격력은 5이다. 최적의 행동 순서 중 하나는 다음과 같다.
- 1턴: 공격. 기사의 체력이 11이 된다. 이어서 기사가 공격해 당신의 체력이 6이 된다.
- 2턴: 공격. 기사의 체력이 6이 된다. 이어서 기사가 공격해 당신의 체력이 1이 된다.
- 3턴: 회복. 당신의 체력이 11로 돌아온다. 이어서 기사가 공격해 체력이 6이 된다. (이 턴에 공격했다면 다음 기사의 공격에 쓰러진다.)
- 4턴: 공격. 기사의 체력이 1이 된다. 이어서 기사가 공격해 당신의 체력이 1이 된다.
- 5턴: 공격. 기사의 체력이 -4가 된다. 그 즉시 승리하고 기사는 다시 공격하지 못한다.
두 번째 테스트 케이스에서 최적의 행동 순서 중 하나는 다음과 같다.
- 1턴: 강화. 공격력이 3이 된다. 이어서 기사가 공격해 당신의 체력이 1이 된다.
- 2턴: 공격. 기사의 체력이 0이 된다. 그 즉시 승리하고 기사는 다시 공격하지 못한다.
세 번째 테스트 케이스에서는 기사가 두 번만 공격해도 당신이 쓰러지고, 당신은 그 안에 충분한 피해를 줄 수 없다. 공격할 때마다 회복을 섞으면 전투를 무한히 끌 수는 있지만, 기사를 쓰러뜨리지는 못한다.
네 번째 테스트 케이스에서 최적의 행동 순서 중 하나는 공격, 약화, 강화, 공격, 공격이다.