結果
| 問題 |
No.1501 酔歩
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 16:38:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,347 bytes |
| コンパイル時間 | 402 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 853,236 KB |
| 最終ジャッジ日時 | 2025-06-12 16:39:04 |
| 合計ジャッジ時間 | 4,095 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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()
gew1fw