No.3628 Sum of Superfibonacci Numbers
問題文最終更新日: 2026-08-17 21:47:27
yukicoder contest 509の他の問題:
問題文
正整数 $n$ が良い数であるとは、 $n$ が以下の条件を満たすことと定義します。
- $n$ を十進数と解釈したときの $10^i$ の位の値を $n_i$ としたとき、 $n_{i+2} > n_{i+1} + n_i$ を満たす非負整数 $i$ が存在する。
また、正整数 $n$ に対して $f(n)$ を、$n$ 以上の良い数の最小値と定義します。
正整数 $N$ が与えられます。 $f(1) + f(2) + \cdots + f(N)$ の値を $998244353$ で割った余りを求めてください。
$T$ 個のテストケースが与えられるので、それぞれについて答えてください。
制約
- 入力される値はすべて整数
- $1 \leq T \leq 200$
- $1 \leq N \leq 10^{18}$
入力
入力は以下の形式で標準入力から与えられる。
$T$
$\mathrm{case}_1$
$\mathrm{case}_2$
$\vdots$
$\mathrm{case}_T$
各テストケースは以下の形式で与えられる。
$N$
出力
各テストケースについての答えを順に改行区切りで出力せよ。
サンプル
サンプル1
入力
4 10 668 169231 1000000000000000000
出力
1000 245820 346334860 992299114
良い数を昇順に並べると、 $100, 200, 201, 210, 300, 301, 302, 310, 311, 320, 400, \cdots$ となります。
$1$ 番目のテストケースについて、 $k = 1, 2, \cdots, 10$ すべてについて $k$ 以上で最小の良い数は $100$ となるため、答えは $100 \times 10 = 1000$ です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。
ぽえ
kazuppa