はまやんはまやんはまやん

hamayanhamayan's blog

Ringo's Favorite Numbers [AtCoder Beginner Contest 100 B]

https://beta.atcoder.jp/contests/abc100/tasks/abc100_b

解説

https://beta.atcoder.jp/contests/abc100/submissions/2691851

100, 200, 300, ...となるので、基本はN+00..で構築されている。
D=0なら0はつけない、D=1なら00をつける、D=2なら0000をつける。
これで基本は大丈夫であるが、これはWAになる。
 
コーナーケースというものがある。
これは普通のアルゴリズムだと異常を起こしてしまう極端なケースのこと。
N=100の場合がコーナーケースとなる。
D=1, N=100の場合は10000となり、ちょうど1回割り切れるが成り立たなくなる。
10100が本当の答えである。
つまりN+1に00...をつければよい。

int D, N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> D >> N;
    if (N == 100) N++;
    cout << N;
    rep(i, 0, D) cout << "00";
    cout << endl;
}