Петя строит число, последовательно добавляя к нему новые числа. На первом шаге у него было '1'. На втором он добавил '2', получилось '12'. На третьем добавил '3', получилось '123', и так далее. По условию, на десятом шаге он приписал число '10', получив '12345678910'.
Потом текст говорит, что в результате должно быть не больше п цифр. Это значит, что общая длина числа не должна превышать п. Нам нужно найти самое большое число, которое Петя мог придумать, укладываясь в это ограничение.
В таблице приведены примеры:
Важное замечание: в примере для n=24 указано, что если бы Петя добавил следующее число ('17'), длина строки стала бы 25. Это уже больше 24, поэтому он остановился на '16'.
Чтобы получить самое большое число, Петя должен добавлять числа в порядке возрастания (1, 2, 3, ...). Мы должны найти такое максимальное число k, чтобы длина последовательности от 1 до k была меньше или равна n.
Давайте посчитаем длину строки по мере добавления чисел:
Если n = 24, то максимальная длина — 23. Это соответствует числу, полученному при добавлении числа '16'.
Если бы n = 25, то мы могли бы добавить '17', и длина стала бы 25. Тогда бы число было '1234567891011121314151617'.
В задаче дано число n. Мы должны найти такое наибольшее k, чтобы длина строки от 1 до k была ≤ n.
Для n = 3: Длина строки '123' равна 3. Максимальное k=3. Результат: 123.
Для n = 24: Длина строки '12345678910111213141516' равна 23. Это меньше 24. Если добавить '17', длина станет 25, что больше 24. Значит, максимальное k=16. Результат: 12345678910111213141516.
Ключевая идея: Нужно найти самое большое число k, чтобы суммарная длина чисел от 1 до k не превышала n.
Алгоритм:
Пример для n=24:
Самое большое число, которое Петя мог придумать, это строка '12345678910111213141516'.
Ответ: 12345678910111213141516