結果

問題 No.2772 Appearing Even Times
ユーザー dp_ijkdp_ijk
提出日時 2024-06-18 12:21:36
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 2,523 ms / 4,000 ms
コード長 629 bytes
コンパイル時間 850 ms
コンパイル使用メモリ 82,360 KB
実行使用メモリ 77,200 KB
最終ジャッジ日時 2024-06-18 12:22:04
合計ジャッジ時間 26,811 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

MOD = 998_244_353

N = [int(ch) for ch in input()]
L = [0]*(1<<10)
P = [0]*(1<<10)

for i, x in enumerate(N):
   nL = [0]*(1<<10)
   nP = [0]*(1<<10)
   for S in range(1<<10):
      for dg in range(10):
         nS = S^(1<<dg)
         nL[nS] += L[S]
         if dg < x:
            nL[nS] += P[S]
         elif dg == x:
            nP[nS] += P[S]
         nP[nS] %= MOD
         nL[nS] %= MOD
   for dg in range(1, 10):
      if i == 0:
         if dg < x:
            nL[1<<dg] += 1
         elif dg == x:
            nP[1<<dg] += 1
      else:
         nL[1<<dg] += 1
   L, P = nL, nP

ans = L[0] + P[0]
ans %= MOD
print(ans)
0