結果

問題 No.1501 酔歩
ユーザー to-omer
提出日時 2021-05-07 23:55:40
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 726 ms / 2,000 ms
コード長 704 bytes
コンパイル時間 229 ms
コンパイル使用メモリ 82,188 KB
実行使用メモリ 142,688 KB
最終ジャッジ日時 2024-09-15 12:03:09
合計ジャッジ時間 27,883 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 53
権限があれば一括ダウンロードができます

ソースコード

diff #

from fractions import Fraction as F
def main():
    N,K=map(int, input().split())
    *A,=map(F, input().split())
    if K == N:
        print('1/1')
    elif K == 1:
        print('0')
    else:
        D=[(F(0),F(0))]
        for i in range(1,N-1):
            b = A[i-1]/(A[i-1]+A[i+1])
            a = A[i+1]/(A[i-1]+A[i+1])
            bb, aa = D[-1]
            de = F(1) - b*aa
            nb = b * bb / de
            na = a / de
            D.append((nb, na))
        X = [F(0)] * N
        X[N-1] = F(1)
        for i in range(N-2, 0, -1):
            b, a = D[i]
            X[i] = b + a * X[i+1]
        print(f'{X[K-1].numerator}/{X[K-1].denominator}')

if __name__ == '__main__':
    main()
0