結果
問題 |
No.3178 free sort
|
ユーザー |
|
提出日時 | 2025-06-14 11:01:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 176 ms / 2,000 ms |
コード長 | 505 bytes |
コンパイル時間 | 447 ms |
コンパイル使用メモリ | 83,028 KB |
実行使用メモリ | 76,612 KB |
最終ジャッジ日時 | 2025-06-14 11:01:41 |
合計ジャッジ時間 | 8,100 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 40 |
ソースコード
N = input() D = {} MOD = 998244353 for i in range(len(N)): if N[i] not in D: D[N[i]] = 1 else: D[N[i]] += 1 ans = 1 if "0" in D: for i in range(len(N), 0, -1): if i == len(N): ans *= len(N) - D["0"] else: ans *= i ans %= MOD else: for i in range(len(N), 0, -1): ans *= i ans %= MOD for i in range(10): x = str(i) val = 1 if x in D: for j in range(1, D[x]+1): val *= pow(j, -1, MOD) val %= MOD ans *= val ans %= MOD print(ans)