結果
問題 |
No.1501 酔歩
|
ユーザー |
![]() |
提出日時 | 2025-04-15 22:19:33 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,167 bytes |
コンパイル時間 | 176 ms |
コンパイル使用メモリ | 81,752 KB |
実行使用メモリ | 82,120 KB |
最終ジャッジ日時 | 2025-04-15 22:21:35 |
合計ジャッジ時間 | 5,795 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 WA * 15 |
ソースコード
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") return sum_num = 1 sum_den = 1 current_num = 1 current_den = 1 for m in range(3, n + 1): if m - 3 < 0: numerator = 0 else: numerator = a[m - 3] denominator = a[m - 1] new_num = current_num * numerator new_den = current_den * denominator g = math.gcd(new_num, new_den) new_num //= g new_den //= g current_num, current_den = new_num, new_den new_sum_num = sum_num * current_den + current_num * sum_den new_sum_den = sum_den * current_den g = math.gcd(new_sum_num, new_sum_den) sum_num = new_sum_num // g sum_den = new_sum_den // g if sum_num == 0: print("0") return p2_num = sum_den p2_den = sum_num g = math.gcd(p2_num, p2_den) p2_num //= g p2_den //= g if k == 2: print(f"{p2_num}/{p2_den}") return sum_k_num = 1 sum_k_den = 1 current_k_num = 1 current_k_den = 1 for m in range(3, k + 1): if m - 3 < 0: numerator = 0 else: numerator = a[m - 3] denominator = a[m - 1] new_k_num = current_k_num * numerator new_k_den = current_k_den * denominator g = math.gcd(new_k_num, new_k_den) new_k_num //= g new_k_den //= g current_k_num, current_k_den = new_k_num, new_k_den new_sum_k_num = sum_k_num * current_k_den + current_k_num * sum_k_den new_sum_k_den = sum_k_den * current_k_den g = math.gcd(new_sum_k_num, new_sum_k_den) sum_k_num = new_sum_k_num // g sum_k_den = new_sum_k_den // g p_k_num = sum_k_num * p2_num p_k_den = sum_k_den * p2_den g = math.gcd(p_k_num, p_k_den) p_k_num //= g p_k_den //= g if p_k_num == 0: print("0") else: print(f"{p_k_num}/{p_k_den}") if __name__ == "__main__": main()