結果
問題 |
No.2963 Mecha DESU
|
ユーザー |
![]() |
提出日時 | 2024-11-20 11:35:51 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 572 bytes |
コンパイル時間 | 527 ms |
コンパイル使用メモリ | 82,524 KB |
実行使用メモリ | 213,584 KB |
最終ジャッジ日時 | 2024-11-20 11:37:36 |
合計ジャッジ時間 | 102,556 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 TLE * 30 |
ソースコード
N,M,K=map(int, input().split()) A=list(map(int, input().split())) dp=[0]*(N+1) mod=998244353 D={} import heapq for a in A: if a not in D: D[a]=0 D[a]+=1 B=[] for d in D: heapq.heappush(B,(d,d,D[d])) for i in range(1,N+1): while B: x,y,z=heapq.heappop(B) if i!=x: heapq.heappush(B,(x,y,z)) break else: dp[x]+=z dp[x]%=mod x+=y heapq.heappush(B,(x,y,z)) D={};ans=0;pp=pow(M,K,mod) for i in range(1,N+1): d=dp[i] if d in D: ans+=D[d] else: p=pow(M-d,K,mod) ans+=pp-p D[d]=pp-p print(ans*pow(pp,-1,mod)%mod)