結果
| 問題 | No.1501 酔歩 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2021-05-08 02:19:07 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 132 ms / 2,000 ms | 
| コード長 | 1,014 bytes | 
| コンパイル時間 | 296 ms | 
| コンパイル使用メモリ | 81,992 KB | 
| 実行使用メモリ | 97,536 KB | 
| 最終ジャッジ日時 | 2024-09-15 16:37:15 | 
| 合計ジャッジ時間 | 7,932 ms | 
| ジャッジサーバーID (参考情報) | judge6 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 53 | 
ソースコード
import sys,random,bisect
from collections import deque,defaultdict
from heapq import heapify,heappop,heappush
from itertools import permutations
from math import log,gcd
input = lambda :sys.stdin.buffer.readline()
mi = lambda :map(int,input().split())
li = lambda :list(mi())
N,K = mi()
A = li()
n = N
if N==1:
    print("1/1")
    exit()
dp = [[(0,1),(0,1)] for i in range(n)]
dp[1][1] = (1,1)
for i in range(2,n):
    p,q = A[i-2],A[i-2]+A[i]
    a,b = dp[i-1][1]
    c,d = dp[i-2][1]
    c,d = c*p,d*q
    a,b,c,d = a*d,b*d,c*b,b*d
    p,q = A[i-2],A[i-2]+A[i]
    e,f = (a-c)*q,(q-p)*b
    g = gcd(e,f)
    dp[i][1] = (e//g,f//g)
a,b = dp[n-1][0]
c,d = dp[n-1][1]
"""
1 = a/b + c/d * dp[1]
dp[1] = -a*d/b*c
"""
e,f = (b-a)*d,b*c
g = gcd(e,f)
e //= g
f //= g
a,b = dp[K-1][0]
c,d = dp[K-1][1]
"""
p/q = a/b + c/d * e/f
    = adf/bdf + bce/bdf
    = (a*d*f+b*c*e)/(b*d*f)
"""
p,q = a*d*f+b*c*e,b*d*f
if p<0:
    p,q = -p,-q
g = gcd(p,q)
if p:
    print("{}/{}".format(p//g,q//g))
else:
    print(0)
            
            
            
        