No.3548 SigMax Digits (Construction ver.)
タグ : / 解いたユーザー数 45
作問者 : 👑
ぽえ
問題文
正整数 $n$ に対し、 $f(n)$ を「$n$ を十進表記したときに含まれる数字の最大値」とします。
例えば、 $f(314) = 4, ~ f(10) = 1, ~ f(998244353) = 9$ です。
正整数 $N$ が与えられます。
$1 \leq L \leq R \leq 10^{18}$ を満たす整数 $L, R$ のうち、 $f(L) + f(L + 1) + \cdots + f(R) = N$ を満たすものを一つ提示してください。
本問題の制約下において、条件を満たす $L, R$ は必ず存在することが保証されます。
$T$ 個のテストケースが与えられるので、それぞれについて答えてください。
制約
- 入力される値はすべて整数
- $1 \leq T \leq 10^5$
- $1 \leq N \leq \color{red}{10^{17}}$
入力
入力は以下の形式で標準入力から与えられる。ここで $t ~ (1 \leq t \leq T)$ 番目のテストケースを $\mathrm{case}_t$ と表す。
$T$
$\mathrm{case}_1$
$\mathrm{case}_2$
$\vdots$
$\mathrm{case}_T$
各テストケースは以下の形式で与えられる。
$N$
出力
$T$ 行出力し、$t$ 行目には $t$ 番目のテストケースについての答えを出力せよ。
各テストケースについて、答えとなる $L, R$ をこの順に空白区切りで出力せよ。
ただし、答えが複数存在する場合、そのいずれを答えても正答と判定される。
サンプル
サンプル1
入力
3 23 5 99999999999999999
出力
58 60 5 5 888888888888888890 900000000000000000
$1$ 番目のテストケースについて、 $f(58) + f(59) + f(60) = 8 + 9 + 6 = 23$ となります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。