hiro1729 競プロ

競プロの解説などを書きます。

ABC251-D 解説

D - At Most 3 (Contestant ver.)

$10^6$ 未満の正の整数を $100$ 進法で $3$ 桁であらわすことができる。つまり、 $100$ 進法で $100^0$ の位、$100^1$ の位、$100^2$ の位がそれぞれ $0$ 〜 $99$ であるおもりを全て持つと個数は $297$ 個であり、$10^6$ 未満の正の整数を全て良い整数となります。これに $10^6$ のおもりを追加すると個数が $298$ 個かつ $10^6$ 以下の全ての整数が良い整数となるため、条件を満たします。

A = list(range(1, 100)) + list(range(100, 10000, 100)) + list(range(10000, 1010000, 10000))
print(len(A))
print(*A)
#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> A;
    for (int i = 1; i < 100; i++) {
        A.push_back(i);
        A.push_back(i * 100);
        A.push_back(i * 10000);
    }
    A.push_back(1000000);
    cout << A.size() << '\n';
    for (int i = 0; i < A.size(); i++) {
        cout << A[i] << ' ';
    }
}