타이트한 단어

면접 대비

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

요약
0부터 k까지의 숫자로 만든 길이 n의 단어 중 이웃한 자리 차이가 1 이하인 단어의 비율을 소수점 다섯 자리까지 반올림해 출력한다.
난이도

보통10점 중 5점

유형
동적 계획법, 조합론, 수학, 구현
정답자
아직 제출이 없습니다

문제

알파벳 {0,1,…,k}\{0, 1, \ldots, k\} (0≤k≤90 \le k \le 9)를 생각하자. 이 알파벳으로 이루어진 길이 nn의 단어가 타이트(tight) 하다는 것은, 이웃한 두 자리의 값 차이가 항상 11 이하임을 뜻한다.

입력

입력은 여러 줄로 이루어진다. 각 줄에는 두 정수 kk와 nn이 주어진다 (0≤k≤90 \le k \le 9, 1≤n≤1001 \le n \le 100). 입력의 끝(EOF)까지 각 줄을 순서대로 처리한다.

출력

각 입력 줄에 대해, 알파벳 {0,1,…,k}\{0, 1, \ldots, k\}로 만든 길이 nn인 타이트한 단어의 비율을 백분율로 출력한다. 즉, 타이트한 단어의 개수를 전체 단어의 수 (k+1)n(k+1)^n으로 나눈 뒤 100100을 곱한 값이다. 소수점 아래 정확히 55자리로 반올림하여 출력한다(자리 올림 시 0.50.5는 올림한다).

예제2

  1. 예제 1

    입력
    4 1
    2 5
    3 5
    8 7
    
    예상 출력
    100.00000
    40.74074
    17.38281
    0.10130
    
  2. 예제 2

    입력
    9 2
    
    예상 출력
    28.00000