結果
| 問題 |
No.1501 酔歩
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 21:11:13 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,414 bytes |
| コンパイル時間 | 186 ms |
| コンパイル使用メモリ | 82,000 KB |
| 実行使用メモリ | 79,616 KB |
| 最終ジャッジ日時 | 2025-06-12 21:12:52 |
| 合計ジャッジ時間 | 6,035 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 40 WA * 13 |
ソースコード
import sys
import math
def main():
N, K = map(int, sys.stdin.readline().split())
A = list(map(int, sys.stdin.readline().split()))
if K == 1:
print("0")
return
if K == N:
print("1/1")
return
# Compute sumK: sum_{k=0}^{K-2} 1/(A[k]*A[k+1])
sumK_num = 0
sumK_den = 1
for k in range(K-1):
a = A[k] * A[k+1]
# Add 1/a to sumK_num/sumK_den
new_num = sumK_num * a + sumK_den * 1
new_den = sumK_den * a
g = math.gcd(new_num, new_den)
sumK_num = new_num // g
sumK_den = new_den // g
# Compute sumN: sum_{k=0}^{N-2} 1/(A[k]*A[k+1])
sumN_num = 0
sumN_den = 1
for k in range(N-1):
a = A[k] * A[k+1]
new_num = sumN_num * a + sumN_den * 1
new_den = sumN_den * a
g = math.gcd(new_num, new_den)
sumN_num = new_num // g
sumN_den = new_den // g
# p = sumK / sumN = (sumK_num * sumN_den) / (sumK_den * sumN_num)
numerator = sumK_num * sumN_den
denominator = sumK_den * sumN_num
if denominator == 0:
print("0")
return
if numerator == 0:
print("0")
return
g = math.gcd(numerator, denominator)
p = numerator // g
q = denominator // g
if q == 1:
print(f"{p}/1")
else:
print(f"{p}/{q}")
if __name__ == "__main__":
main()
gew1fw