7133 : 게임 시뮬 — 턴 기반 전투
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
두 캐릭터 A와 B가 턴제로 전투를 진행하는 시뮬레이션을 구현하십시오.
- 각 캐릭터는 HP, 공격력(ATK), 방어력(DEF) 속성을 가집니다.
- A와 B는 턴 번호에 따라 주어진 명령열의 주체 행동을 차례대로 진행합니다. (예: 명령이 A이면 A가 B를 공격, B이면 B가 A를 공격)
- 타격 시 입히는 데미지는
- 둘 중 하나라도 HP가 0이 되는 즉시 경기가 종료됩니다.
각 턴이 끝난 후의 A와 B의 남은 HP를 출력하고, 마지막 줄에 최종 승자를 출력하십시오.
[제약 조건]
• A와 B 문자로만 구성되며, 길이는 100 이하입니다
- 각 캐릭터는 HP, 공격력(ATK), 방어력(DEF) 속성을 가집니다.
- A와 B는 턴 번호에 따라 주어진 명령열의 주체 행동을 차례대로 진행합니다. (예: 명령이 A이면 A가 B를 공격, B이면 B가 A를 공격)
- 타격 시 입히는 데미지는
MAX(1, 공격자_ATK - 방어자_DEF) 입니다.- 둘 중 하나라도 HP가 0이 되는 즉시 경기가 종료됩니다.
각 턴이 끝난 후의 A와 B의 남은 HP를 출력하고, 마지막 줄에 최종 승자를 출력하십시오.
[제약 조건]
• A와 B 문자로만 구성되며, 길이는 100 이하입니다
입력 설명
첫째 줄에 A의 HP, ATK, DEF가 공백으로 구분되어 주어집니다. (10 ≤ HP ≤ 1,000, 1 ≤ ATK, DEF ≤ 100)
둘째 줄에 B의 HP, ATK, DEF가 공백으로 구분되어 주어집니다.
셋째 줄에 행동 명령 문자열이 공백 없이 주어집니다. (A와 B 문자로만 구성되며, 길이는 100 이하입니다.)
둘째 줄에 B의 HP, ATK, DEF가 공백으로 구분되어 주어집니다.
셋째 줄에 행동 명령 문자열이 공백 없이 주어집니다. (A와 B 문자로만 구성되며, 길이는 100 이하입니다.)
출력 설명
각 턴 명령이 처리된 후 A와 B의 남은 HP를
마지막 줄에 최종 승자(
A_HP B_HP 형식으로 줄바꿈하여 출력합니다.마지막 줄에 최종 승자(
A 또는 B, 비긴 경우 또는 모두 생존 시 DRAW)를 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
100 20 5
100 15 10
ABABAB
출력 예시
COPY
복사되었습니다!
복사되었습니다!
100 90
90 90
90 80
80 80
80 70
70 70
DRAW
도움
명령열을 따라가며
dmg = max(1, ATK - DEF)를 상대 HP에서 차감하고, HP는 0보다 작아질 수 없으므로 max(0, HP)로 보정합니다.