TUATPC 2025 Spring
コンテスト日時
2025/03/09 (Su) 13:30 - 17:00

E - ngng 数

ผักชี
2
s
1024
MB
100

問題文

とここちゃん 「4040」
んぐ 「それって ngng な整数だね!」

正の整数 $x$ について、$x$ の十進表記で上から $i$ 桁目の数字を $x_i$ とします。ただし、十進表記において上位桁に不要な $0$ は付けないものとします。

十進表記で $d$ 桁の正の整数 $x$ が次の条件を両方とも満たすとき、かつその時に限り、$x$ は ngng な整数 であると定義します。

  • $x_i \neq x_j$ かつ $x_j \neq x_k$ かつ $x_i \neq x_k$ を満たす $1$ 以上 $d$ 以下の整数の組 $(i, j, k)$ が存在しない
  • $x_i \neq x_{i + 1}$ を満たす $1$ 以上 $d$ 未満の整数 $i$ の個数が $3$ 以上の奇数である

整数 $N$ が与えられます。 $1$ 以上 $N$ 以下の整数のうち、ngng な整数の個数を $998244353$ で割ったあまりを求めてください。

制約

  • $1 \leq N \leq 10^{ 100{,}000 }$
  • 入力は全て整数

部分点

以下の制約を追加したデータセットに正解した場合は $1$ 点が与えられる。

  • $N \leq 10^6$

入力

入力は以下の形式で標準入力から与えられます。

$N$

出力

答えを標準出力に出力してください。

入力例 1
1220
出力例 1
2

$1$ 以上 $1220$ 以下の整数のうち ngng な整数であるものは $1010,1212$ の $2$ つです。

入力例 2
12345
出力例 2
96
入力例 3
2025030920250309202503092025030920250309
出力例 3
201241218

例えば、$4040, 515151, 112211111122, 4484844844888$ はすべて ngng な整数です。

一方、$24, 9876, 10101, 60208$ はすべて ngng な整数ではありません。

提出
C++23 (g++ 12.2.0)