結果
| 問題 |
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)