結果

問題 No.1554 array_and_me
ユーザー aaaaaaaaaa2230
提出日時 2021-06-19 15:08:04
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 685 ms / 2,000 ms
コード長 747 bytes
コンパイル時間 213 ms
コンパイル使用メモリ 82,452 KB
実行使用メモリ 113,128 KB
最終ジャッジ日時 2024-06-22 22:04:56
合計ジャッジ時間 18,130 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import *
mod = 998244353
fact = [1,1]
finv = [1,1]
inv = [0,1]
 
for i in range(2,10**5+5):
    fact.append((fact[-1]*i)%mod)
    inv.append((inv[mod%i]*(mod-mod//i))%mod)
    finv.append((finv[-1]*inv[-1])%mod)
def solve():
    n,k = map(int,input().split())
    A = list(map(int,input().split()))
    X = [0]*n
    h = [[-a,i] for i,a in enumerate(A)]
    heapify(h)
    for _ in range(k):
        v,i = heappop(h)
        X[i] += 1
        heappush(h,[-A[i]/(X[i]+1),i])
    
    ans = fact[k]
    for i,(x,a) in enumerate(zip(X,A)):
        ans *= pow(a,x,mod)*finv[x]%mod
        ans %= mod
    base = pow(sum(A),k,mod)
    ans *= pow(base,mod-2,mod)
    ans %= mod
    print(ans)

t = int(input())
for _ in range(t):
    solve()

0