結果
| 問題 | No.1501 酔歩 | 
| コンテスト | |
| ユーザー |  gew1fw | 
| 提出日時 | 2025-06-12 21:29:27 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 1,347 bytes | 
| コンパイル時間 | 212 ms | 
| コンパイル使用メモリ | 81,676 KB | 
| 実行使用メモリ | 849,148 KB | 
| 最終ジャッジ日時 | 2025-06-12 21:30:08 | 
| 合計ジャッジ時間 | 3,657 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | WA * 2 MLE * 1 -- * 50 | 
ソースコード
import sys
import math
from fractions import Fraction
def main():
    sys.setrecursionlimit(1 << 25)
    N, K = map(int, sys.stdin.readline().split())
    A = list(map(int, sys.stdin.readline().split()))
    A = [0] + A  # make it 1-based
    if K == 1:
        print("0")
        return
    if K == N:
        print("1")
        return
    # Precompute prefix_num and prefix_den
    prefix_num = [1] * (N + 1)
    for i in range(1, N + 1):
        prefix_num[i] = prefix_num[i - 1] * A[i]
    prefix_den = [1] * (N + 1)
    for j in range(3, N + 1):
        prefix_den[j] = prefix_den[j - 1] * A[j]
    # Compute sum_T (sum of Tj for j=3 to N)
    sum_T = Fraction(0, 1)
    for j in range(3, N + 1):
        num = prefix_num[j - 2]
        den = prefix_den[j]
        Tj = Fraction(num, den)
        sum_T += Tj
    S = Fraction(1, 1) + sum_T
    D2 = Fraction(1, S)
    # Compute sum_Tk (sum of Tj from j=2 to K)
    sum_Tk = Fraction(0, 1)
    for j in range(2, K + 1):
        if j == 2:
            Tj = Fraction(1, 1)
        else:
            num = prefix_num[j - 2]
            den = prefix_den[j]
            Tj = Fraction(num, den)
        sum_Tk += Tj
    P_K = D2 * sum_Tk
    p = P_K.numerator
    q = P_K.denominator
    if q == 1:
        print(p)
    else:
        print(f"{p}/{q}")
if __name__ == '__main__':
    main()
            
            
            
        