두 사람이 각각 길이 k인 부분 문자열을 남기고, Alice가 한 구간을 변형한 뒤, 먼저 m승을 거두는 사람이 2점을 얻는 게임에서 최적의 결과를 출력한다.
어려움9게임 이론구현완전 탐색시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB앨리스와 밥은 세계 1위와 2위 선수다. 다음 주에 두 사람은 목성 가위바위보 선수권에서 맞붙는다. 기본 규칙은 그대로다. 바위는 가위를 이기고, 가위는 보를 이기고, 보는 바위를 이긴다. 다만 운이 끼어들 여지는 없앴다. 경기 전에 두 선수는 각자 길이 n인 수 문자열을 정한다. 각 수는 R, P, S 중 하나다. 앨리스의 문자열을 A, 밥의 문자열을 B라고 하자.
한 경기는 준비 단계 세 번과 대결 단계 한 번으로 이루어지고, 1단계, 2단계, 3단계, 대결 단계 순서로 진행한다.
1단계에서 앨리스는 A의 앞에서 몇 개(하나도 지우지 않아도 된다), 뒤에서 몇 개(하나도 지우지 않아도 된다)를 지워서 정확히 k개의 수를 남긴다.
2단계에서 밥은 B의 앞에서 몇 개(하나도 지우지 않아도 된다), 뒤에서 몇 개(하나도 지우지 않아도 된다)를 지워서 정확히 k개의 수를 남긴다.
3단계에서 앨리스는 남은 k개의 수 가운데 연속한 ℓ개를 골라 변형한다. 변형하면 바위는 보로, 보는 가위로, 가위는 바위로 바뀐다.
대결 단계에서 두 선수는 자기 수 k개를 왼쪽부터 차례로 낸다. 보통의 가위바위보 규칙을 그대로 쓴다. 먼저 m판을 이긴 선수가 2점을 받고 경기는 그 자리에서 끝난다. 어느 쪽도 m판을 이기지 못하면 두 선수가 1점씩 받는다. 두 선수는 모두 자기 점수를 최대로 만들려고 한다.
n=8, k=4, ℓ=2, m=1인 경기를 보자. 다음은 한 가지 진행 예시다.
| 앨리스 | 밥 | |
|---|---|---|
| 처음 수 | R P S S P R P R | S S P R S S R S |
| 1단계 후 | S S P R | S S P R S S R S |
| 2단계 후 | S S P R | S P R S |
| 3단계 후 | R R P R | S P R S |
1단계에서 앨리스가 A의 앞에서 2개, 뒤에서 2개를 지웠고, 2단계에서 밥이 B의 앞에서 1개, 뒤에서 3개를 지웠으며, 3단계에서 앨리스가 앞의 두 수를 변형했다. 대결 단계의 첫 판은 바위가 가위를 이기므로 앨리스가 이긴다. m=1이라 한 판만 이기면 되므로 앨리스가 2점을 받고 경기가 끝난다. 앨리스가 1단계에서 이렇게 고르고 나면 밥은 2점은 물론 1점도 받지 못한다. 밥이 2단계에서 무엇을 하든 앨리스에게는 2점을 가져가는 방법이 남아 있다.
모든 단계에서 두 선수는 상대의 수 문자열과 앞선 단계의 결정을 전부 알고 있다. 두 선수가 최적으로 행동할 때 누가 이기는지 구하라.
첫째 줄에 정수 네 개가 주어진다. n (1≤n≤50)은 수의 개수, k (1≤k≤n)는 1단계와 2단계에서 남기는 수의 개수, ℓ (0≤ℓ≤k)은 3단계에서 변형하는 수의 개수, m (1≤m≤k)은 2점을 받으려면 이겨야 하는 판의 수다.
둘째 줄에 앨리스의 수 문자열 A가 주어지고, 셋째 줄에 밥의 수 문자열 B가 주어진다. 두 문자열의 길이는 n이고, R, P, S로만 이루어져 있다.
두 선수가 최적으로 행동할 때 점수가 더 높은 선수의 이름을 Alice 또는 Bob으로 출력한다. 두 선수의 점수가 같으면 Draw를 출력한다.