Идея задачи: десятичная запись числа строится как последовательность блоков вида 1^i 2^i для i = 1, 2, 3, …
- Длина первого k блоков равна T(k) = k(k+1).
- Мы ищем, в каком блоке находится позиция N = 1 001 002.
Находим T(1000) = 1000·1001 = 1 001 000, T(1001) = 1001·1002 = 1 003 002. Значит, N лежит во 1001-м блоке, и внутрь блока остаётся d = N − T(1000) = 1 001 002 − 1 001 000 = 2 цифры.
Во первых 1000 блоках:
- в каждом блоке i есть i единиц и i двойки.
- суммарно по всем i = 1..1000 единиц: S = sum i = 1000·1001/2 = 500 500.
- суммарно по всем i = 1..1000 двойок: тоже 500 500.
В 1001-м блоке сначала идут 1001 единиц, затем 1001 двойок. Мы используем только первые 2 цифры этого блока, которые обе равны единицам. Значит добавляем 2 единицы и 0 двоек.
Итого:
- количество единиц: 500 500 + 2 = 500 502
- количество двоек: 500 500
Ответ: единиц — 500502, двоек — 500500.