筑波大学プログラミングコンテスト2025
コンテスト日時
2025/11/16 (Su) 13:15 - 16:45

G - Approximation

Benihuki
2
s
1024
MB
500

問題文

$k = 1, 2, \ldots, K$ について以下の問題を解き、順に答えを出力してください。

00, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 の $11$ 個のボタンがついた電卓があります。この電卓には、はじめ $0$ が入力されています。 ボタン 00 を押すと、入力されている数が $100$ 倍されます。 それ以外のボタンを押すと、入力されている数が $10$ 倍されたあとに、押されたボタンに書かれている数が加算されます。
これから、 $k$ 回以下の任意の回数この電卓のボタンを押して $N$ 以上の整数を入力します。入力する数を $M$ とするとき、$M - N$ の値としてあり得る値の最小値を $998244353$ で割ったあまりを出力してください。$k$ 回以下の入力で $N$ 以上の整数を入力することができない場合、代わりに $-1$ を出力してください。

制約

  • $1 \leq K \leq 10^5$
  • $1 \leq N < 10^{10^5}$
  • 入力される値は全て整数

部分点

この問題には、部分点が設定されている。部分点の採点方法については、コンテストトップ を参照すること。

  1. ($150$ 点)
  • $1 \leq K \leq 10^3$
  • $1 \leq N < 10^{10^3}$
  1. ($350$ 点)
  • 追加の制約はない。

入力

入力は以下の形式で与えられる.

$N\quad K$

出力

$K$ 行出力せよ。$i$ 行目には、$k=i$ の場合に対する答えを出力せよ。

入力例 1
10134 5
出力例 1
-1 -1 9866 66 0
入力例 2
9099 6
出力例 2
-1 -1 1 0 0 0
入力例 3
3141592653589 10
出力例 3
-1 -1 -1 -1 -1 -1 915447184 421391587 7346411 346411

$998244353$ で割ったあまりを出力すること。

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