結果
問題 |
No.3160 Party Game
|
ユーザー |
![]() |
提出日時 | 2025-05-23 19:13:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,189 ms / 2,000 ms |
コード長 | 598 bytes |
コンパイル時間 | 467 ms |
コンパイル使用メモリ | 82,056 KB |
実行使用メモリ | 123,112 KB |
最終ジャッジ日時 | 2025-05-27 21:58:30 |
合計ジャッジ時間 | 49,099 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
N,M=map(int,input().split()) u=[1]*(2*10**6+1) u2=[1]*(2*10**6+1) mod=998244353 for i in range(1,2*10**6+1): u[i]=u[i-1]*i u[i]%=mod u2[i]=pow(u[i],-1,mod) def ncm(x,y): ans=u[x]*u2[y] ans%=mod ans*=u2[x-y] ans%=mod return ans dp=[0]*(M+2) v=[0]*(M+2) if N==1: result=(M-1) result*=pow(2,-1,mod) result%=mod print(result) exit() for x in range(M,-1,-1): rest=M-N*x if rest<0: continue y=ncm(N+rest,N) v[x]=y dp[x]=v[x]-v[x+1] dp[x]%=mod dp[x]-=N result=0 z=sum(dp)%mod z=pow(z,-1,mod) for x in range(1,M+1): result+=x*dp[x]*z result%=mod print(result)