아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

베팅을 할 것인가, 말 것인가

시간 제한1초메모리 제한128 MB

요약
칩의 이동과 턴 건너뛰기 명령이 적힌 보드에서 T턴 안에 끝에 도달할 확률을 계산해 베팅 여부를 정한다.
난이도

보통10점 중 6점

유형
동적 계획법, 확률, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

어떤 사람이 카지노에서 새로운 게임을 발견했다. 이 게임은 아래처럼 일렬로 늘어선 칸 위에서 진행된다.

시작12…m끝

칩을 처음에 시작(Start) 칸에 놓는다. 플레이어는 여러 번의 턴을 거쳐 칩을 끝(End) 칸으로 옮기려 하며, 칩이 끝 칸에 도달하면 게임이 끝난다.

각 턴에서는 동전을 한 번 던진다.

  • 앞면이면 칩을 오른쪽으로 한 칸 옮긴다.
  • 뒷면이면 칩을 오른쪽으로 두 칸 옮긴다. 단, 칩이 끝 칸에서 정확히 한 칸 떨어져 있을 때에는 두 칸을 넘어가지 않고 그대로 끝 칸으로 옮긴다.

동전을 던져 도착한 칸에 지시가 적혀 있으면 반드시 그 지시를 따른다. 지시는 다음 네 가지 중 하나다.

  1. 오른쪽으로 nn칸 이동 (여기서 nn은 양의 정수)
  2. 왼쪽으로 nn칸 이동 (여기서 nn은 양의 정수)
  3. 한 턴 쉬기
  4. 지시 없음

지시를 따른 뒤 그 턴이 끝나고 새로운 턴이 시작된다. 칩은 동전을 던져 도착한 칸의 지시만 따른다는 점에 유의하라. 예를 들어 칩이 "왼쪽으로 3칸 이동" 칸에 도착하면 그 이동은 수행하지만, 이동 후 도착한 칸의 지시는 무시하고 턴이 끝난다.

한 턴 쉬기 칸에 도착하면 바로 다음 턴을 쉰다. 쉬는 턴에는 동전을 던지지 않고 칩도 움직이지 않으며, 쉰 턴도 턴 수에 포함된다.

베팅은 다음과 같이 진행된다. 보드 배치와 정수 TT가 주어질 때, 게임이 TT번의 턴 이내에 끝날지 아닐지를 예측해 베팅해야 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 첫 줄에는 테스트 케이스의 개수 nn이 주어진다. 각 테스트 케이스는 두 줄로 구성된다.

  • 첫 줄에는 두 정수 mm과 TT가 주어진다 (1≤m≤501 \le m \le 50, 1≤T≤401 \le T \le 40). mm은 시작 칸과 끝 칸을 제외한 보드의 크기이고, TT는 목표 턴 수다.
  • 둘째 줄에는 mm개의 내부 칸에 대한 지시가 공백으로 구분되어 주어진다. 각 칸의 지시는 다음 중 하나다.
    • +n : 오른쪽으로 nn칸 이동
    • -n : 왼쪽으로 nn칸 이동
    • L : 한 턴 쉬기
    • 0 : 지시 없음 (숫자 0)

어떤 이동 지시도 칩을 보드 밖으로 내보내지 않는다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 게임이 TT번 이하의 턴에 끝날 확률을 pp라 하자.

  • p>0.5p > 0.5이면 Bet for. x.xxxx
  • p<0.5p < 0.5이면 Bet against. x.xxxx
  • p=0.5p = 0.5이면 Push. 0.5000

를 출력한다. 여기서 x.xxxx는 확률 pp를 소수점 넷째 자리까지 반올림한 값이다. (표시용으로 반올림하기 때문에 Bet for.나 Bet against. 뒤에 0.5000이 나타날 수도 있다. 베팅 판정은 반올림하기 전의 정확한 확률을 0.5와 비교해 정한다.)

예제3

  1. 예제 1

    입력
    5
    4 4
    0 0 0 0
    3 3
    0 -1 L
    3 4
    0 -1 L
    3 5
    0 -1 L
    10 20
    +1 0 0 -1 L L 0 +3 -7 0
    
    예상 출력
    Bet for. 0.9375
    Bet against. 0.0000
    Push. 0.5000
    Bet for. 0.7500
    Bet for. 0.8954
    
  2. 예제 2

    입력
    1
    1 1
    0
    
    예상 출력
    Push. 0.5000
    
  3. 예제 3

    입력
    1
    1 2
    0
    
    예상 출력
    Bet for. 1.0000