結果
| 問題 |
No.2527 H and W
|
| コンテスト | |
| ユーザー |
Koi
|
| 提出日時 | 2023-11-03 22:01:04 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 183 ms / 2,000 ms |
| コード長 | 795 bytes |
| コンパイル時間 | 151 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 212,828 KB |
| 最終ジャッジ日時 | 2024-09-25 20:17:55 |
| 合計ジャッジ時間 | 5,346 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
Mod=998244353
H,W,K=map(int,input().split())
def make_divisors(n):
lower_divisors , upper_divisors = [], []
i = 1
while i*i <= n:
if n % i == 0:
lower_divisors.append(i)
if i != n // i:
upper_divisors.append(n//i)
i += 1
return lower_divisors + upper_divisors[::-1]
l=make_divisors(K)
# print(l)
facts=[]
inv_facts=[]
t=1
for i in range(10**6+1):
facts.append(t)
t=t*(i+1)%Mod
inv_facts.append(pow(facts[10**6],-1,Mod))
for i in range(10**6):
inv_facts.append(inv_facts[-1]*(10**6-i)%Mod)
inv_facts.reverse()
ans=0
for s in l:
a=s
b=K//a
if(a>H or b>W):
continue
else:
ans+=(facts[H]*inv_facts[a]*inv_facts[H-a]%Mod)*(facts[W]*inv_facts[b]*inv_facts[W-b]%Mod)%Mod
print(ans%Mod)
Koi