만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

오락실!

시간 제한2초메모리 제한512 MB

요약
삼각형 모양으로 배치된 구멍마다 튕김 확률과 상금이 주어질 때, 공 하나를 떨어뜨렸을 때의 기대 상금을 계산한다.
난이도

보통10점 중 7점

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

문제

오락실에 가 본 적이 있는가? 오락실 게임은 해가 갈수록 실력이 덜 필요한 쪽으로 바뀌었고, 요즘 나오는 기계는 결과가 거의 운으로 갈린다. 그림에 있는 기계를 보자. 구멍이 삼각형 모양으로 배치되어 있다. 구슬은 맨 위 구멍 근처에 떨어진다. 구슬은 그 구멍으로 빠져서 게임이 끝나거나, 빨간 화살표가 가리키는 이웃 구멍(최대 4개) 중 하나로 튄다. 구멍마다 배당이 다르고, 배당이 음수인 구멍도 있다. 구슬이 다른 구멍에 닿으면 같은 과정을 반복한다. 그 구멍으로 빠져서 게임이 끝나거나, 다시 이웃으로 튄다. 이 과정은 끝없이 이어질 수도 있다.

구슬을 한 번 넣었을 때 배당의 기댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 기계의 줄 수 NN이 주어진다 (1≤N≤321 \le N \le 32).

둘째 줄에 H=N(N+1)/2H = N(N+1)/2개의 정수 v1,v2,…,vHv_1, v_2, \dots, v_H가 주어진다 (−100≤vi≤100-100 \le v_i \le 100). viv_i는 구슬이 ii번 구멍으로 빠졌을 때 받는 배당이고, 음수일 수 있다. 구멍 번호는 위에서 아래로 매긴다. 첫째 줄에 1번 구멍이 있고, 둘째 줄에 2번과 3번 구멍이 있다. kk번째 줄은 k(k−1)/2+1k(k-1)/2 + 1번 구멍으로 시작하고 구멍이 정확히 kk개 있다.

그 다음 HH개의 줄에는 각각 실수 다섯 개 p0 p1 p2 p3 p4가 주어진다. ii번째 줄은 ii번 구멍에서 구슬이 왼쪽 위 이웃으로 튈 확률 p0, 오른쪽 위 이웃으로 튈 확률 p1, 왼쪽 아래 이웃으로 튈 확률 p2, 오른쪽 아래 이웃으로 튈 확률 p3, 그 구멍으로 빠질 확률 p4를 나타낸다. 각 확률은 소수점 아래 최대 3자리까지 주어지고, 0.0≤pi≤1.00.0 \le p_i \le 1.0이며 다섯 값의 합은 정확히 1.01.0이다.

kk번째 줄의 cc번째 구멍을 기준으로 이웃은 다음과 같다. 왼쪽 위 이웃은 k−1k-1번째 줄의 c−1c-1번째 구멍, 오른쪽 위 이웃은 k−1k-1번째 줄의 cc번째 구멍, 왼쪽 아래 이웃은 k+1k+1번째 줄의 cc번째 구멍, 오른쪽 아래 이웃은 k+1k+1번째 줄의 c+1c+1번째 구멍이다. 기계의 가장자리라서 없는 이웃으로 튈 확률은 항상 0.00.0으로 주어진다. 예를 들어 1번 구멍은 위쪽 이웃이 없으므로 p0과 p1이 모두 0.00.0이다.

구슬이 bb번 튄 뒤에도 아직 어느 구멍에도 빠지지 않았을 확률은 최대 (1−10−3)⌊b/H⌋(1 - 10^{-3})^{\lfloor b/H \rfloor}라고 가정해도 된다.

출력

게임 한 판의 배당 기댓값을 소수점 아래 여섯째 자리까지 반올림해 한 줄에 출력한다. 소수점 아래 자리는 반드시 여섯 자리를 채워서 쓰고, 반올림한 값이 00이면 부호를 붙이지 말고 0.000000을 출력한다.

구슬을 여러 번 굴려서 어느 구멍에 빠지는지 난수로 흉내내는 몬테카를로 방식으로는 이 정확도가 나오지 않는다.

예제5

  1. 예제 1

    입력
    4
    40 30 30 40 20 40 50 30 30 50
    0.0 0.0 0.45 0.45 0.1
    0.0 0.3 0.3 0.3 0.1
    0.3 0.0 0.3 0.3 0.1
    0.0 0.3 0.3 0.3 0.1
    0.2 0.2 0.2 0.2 0.2
    0.3 0.0 0.3 0.3 0.1
    0.0 0.8 0.0 0.0 0.2
    0.4 0.4 0.0 0.0 0.2
    0.4 0.4 0.0 0.0 0.2
    0.8 0.0 0.0 0.0 0.2
    
    예상 출력
    32.640545
    
  2. 예제 2

    입력
    2
    100 50 50
    0.0 0.0 0.45 0.45 0.1
    0.0 0.90 0.0 0.0 0.10
    0.90 0.0 0.0 0.0 0.10
    
    예상 출력
    76.315789
    
  3. 예제 3

    입력
    1
    100
    0.000 0.000 0.000 0.000 1.000
    
    예상 출력
    100.000000
    
  4. 예제 4

    입력
    1
    -100
    0.000 0.000 0.000 0.000 1.000
    
    예상 출력
    -100.000000
    
  5. 예제 5

    입력
    2
    -81 -100 -100
    0.0 0.0 0.45 0.45 0.1
    0.0 0.90 0.0 0.0 0.10
    0.90 0.0 0.0 0.0 0.10
    
    예상 출력
    -90.000000