結果
| 問題 | No.2772 Appearing Even Times | 
| コンテスト | |
| ユーザー |  timi | 
| 提出日時 | 2024-06-03 00:14:04 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2,026 ms / 4,000 ms | 
| コード長 | 752 bytes | 
| コンパイル時間 | 237 ms | 
| コンパイル使用メモリ | 82,176 KB | 
| 実行使用メモリ | 76,416 KB | 
| 最終ジャッジ日時 | 2024-12-23 10:30:13 | 
| 合計ジャッジ時間 | 25,047 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 19 | 
ソースコード
S=input()
U=[0 for i in range(1<<10)]
T=[0 for i in range(1<<10)]
NU=[0 for _ in range(1<<10)]
NT=[0 for _ in range(1<<10)]
C=[0]*10;mod=998244353
s=int(S[0]) 
C[s]+=1
for i in range(1,int(S[0])+1):
  if i!=int(S[0]):
    U[1<<i]+=1
  else:
    T[1<<i]+=1
    
for i in range(1,len(S)):
  s=int(S[i]) 
  C[s]+=1
  C[s]%=2
  for bit in range(1<<10):
    for k in range(10):
      nex=bit^(1<<k)
      NU[nex]+=U[bit]
      NU[nex]%=mod 
      if k==s:
        NT[nex]+=T[bit]
        NT[nex]%=mod
      elif k<s:
        NU[nex]+=T[bit]
        NU[nex]%=mod
  for j in range(1,10):
    NU[1<<j]+=1
  U,NU,T,NT=NU,U,NT,T
  for bit in range(1<<10):
    NU[bit]=0;NT[bit]=0
  
        
ans=U[0]%mod
if sum(C)==0:
  print((ans+1)%mod)
else:
  print(ans)
  
            
            
            
        