結果

問題 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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 63 ms
65,784 KB
testcase_01 AC 55 ms
65,276 KB
testcase_02 AC 59 ms
66,620 KB
testcase_03 AC 58 ms
66,564 KB
testcase_04 AC 56 ms
66,556 KB
testcase_05 AC 57 ms
65,412 KB
testcase_06 AC 58 ms
68,016 KB
testcase_07 AC 46 ms
60,508 KB
testcase_08 AC 1,285 ms
76,868 KB
testcase_09 AC 1,447 ms
76,748 KB
testcase_10 AC 56 ms
64,812 KB
testcase_11 AC 60 ms
65,452 KB
testcase_12 AC 2,523 ms
76,928 KB
testcase_13 AC 2,070 ms
77,040 KB
testcase_14 AC 2,132 ms
76,924 KB
testcase_15 AC 2,119 ms
77,032 KB
testcase_16 AC 2,110 ms
77,164 KB
testcase_17 AC 1,959 ms
76,840 KB
testcase_18 AC 1,951 ms
76,784 KB
testcase_19 AC 1,813 ms
76,984 KB
testcase_20 AC 1,950 ms
76,992 KB
testcase_21 AC 2,091 ms
77,200 KB
権限があれば一括ダウンロードができます

ソースコード

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