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