파이널 서바이버

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

요약
8x8 격자에서 일부 블록이 사라진 상태가 주어질 때, 4개의 블록이 남을 때까지 살아남을 확률이 가장 높은 네 블록의 꼭짓점 자리를 찾는다.
난이도

보통10점 중 7점

유형
확률, 조합론, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

메이플스토리2는 30분마다 한 번씩 미니게임을 여는 것으로도 유명하다. 그 중 "파이널 서바이버"는 운 요소로만 승패가 결정되는 특이한 미니게임이다.

8×88 \times 8 크기를 가진 격자 모양의 블록 위에서 캐릭터가 서 있고, 이 중 44개를 제외한 6060개의 블록이 하나씩 차례대로 사라진다. 남은 44개의 블록에 서 있던 사람들 모두가 우승자가 되는 심플한 게임이다. 현재 블록이 KK 개 남아있으면 각각의 블록이 사라질 확률은 1K\frac{1}{K} 으로 동일하다.

이 게임의 유일한 공략법이 하나 있는데, 44개의 블록이 만나는 꼭짓점 부분에 서 있으면 우승할 확률이 증가한다. 블록과 캐릭터의 충돌 판정으로 인해서 44개 중 하나의 블록이라도 남아있으면 떨어지지 않고 살아남게 되기 때문이다. 따라서 사람들은 모두 7×77 \times 7 개의 꼭짓점 중 하나를 선택해서 그 자리를 지킨다.

현재 블록의 정보가 주어졌을 때, 우승할 확률이 가장 높은 자리와, 이때의 우승할 확률을 출력해보자.

입력

88 줄에 걸쳐 현재 블록의 상태를 의미하는 문자열이 주어진다. 각 문자열은 88 개의 O 혹은 X 로 구성되어 있다. ii 번째 문자열의 jj 번째 문자가 O 라면 ii 행 jj 열의 블록이 사라지지 않은 상태, X 라면 ii 행 jj 열의 블록이 사라진 상태를 의미한다. O 의 개수는 44 개를 초과한다.

출력

첫째 줄에는 7×77 \times 7 개의 꼭짓점 중, 우승할 확률이 가장 높은 꼭짓점의 행 번호와 열 번호를 공백으로 구분하여 출력한다. 각 행과 열 번호는 11 이상 77 이하의 정수이며, 가장 왼쪽 위의 꼭짓점이 1 11\ 1 이고, 그 오른쪽이 1 21\ 2, 아래는 2 12\ 1 이 된다. 우승할 확률이 가장 높은 자리가 여러 개라면 아무거나 출력한다.

둘째 줄에는 우승할 확률을 출력한다. 절대/상대 오차는 10−610^{-6} 까지 허용한다.

예제3

  1. 예제 1

    입력
    XXOOXXXX
    XXOOXXXX
    XXXXXXXX
    XXXXXXXX
    XXXXXXXX
    XXXXXXOO
    XXXXXXXO
    XXXXXXOO
    
    예상 출력
    1 3
    0.96031746031746
    
  2. 예제 2

    입력
    XXXXXXXX
    XXOOXXXX
    XXXOXXXX
    XXXXXXXX
    XXXXOXXX
    XXXXXOXX
    XXXXXXXX
    XXXXXXXX
    
    예상 출력
    5 5
    1.00000000000000000
    
  3. 예제 3

    입력
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    OOOOOOOO
    
    예상 출력
    1 1
    0.232525307849210546196268