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] << ' '; } }