全通りは $10^N$ 通りです。
$A_{i} = 0$ または $A_{i} = 9$ の場合は $2 \times 9^N - 8^N$ 通りです。
よって求める値は、$10^N - 2 \times 9^N + 8^N$ です。
ここまでは解説を見ずともわかりました。
しかし制約で、$1 \le N \le 10^6$ とあり、$10^N$はかなり巨大な数となることがわかります。
果たしてどうやって計算したらいいのか。
これも剰余を使うんだろうなと思ったんですが、具体的にどう計算すればいいのかわからなかったので解説を見てしまいました
なるほど、ループで乗算しながら同時に剰余も求めているんですね。
そこはわかりました。
しかし、解説のソースコードの最後、
ans=(ans+mod)%mod;
がわからなかった。
そこでいろんな数字を入れて試したら、上記の行の直前ではans
が負の数になる場合もあるんですね(例えば$N = 1000000$)。
そのための1行ということがわかりました。
いやー、気付きませんでした