1. Главная
  2. Библиотека
  3. Высшая математика
  4. Вася — очень порядочный мальчик, он любит порядок во вс...
Решение задачи на тему

Вася — очень порядочный мальчик, он любит порядок во всём. У него в тетради есть столбик натуральных чисел, и он хочет изменить его так, чтобы числа шли по порядку, то есть по неубыванию. При этом Вася, естественно, ничего не хочет зачёркивать, поэтому

  • Высшая математика
  • #Теория оптимизации
  • #Вычислительная математика
Вася — очень порядочный мальчик, он любит порядок во всём. У него в тетради есть столбик натуральных чисел, и он хочет изменить его так, чтобы числа шли по порядку, то есть по неубыванию. При этом Вася, естественно, ничего не хочет зачёркивать, поэтому

Условие:

Вася — очень порядочный мальчик, он любит порядок во всём.

У него в тетради есть столбик натуральных чисел, и он хочет изменить его так, чтобы числа шли по порядку, то есть по неубыванию. При этом Вася, естественно, ничего не хочет зачёркивать, поэтому единственное, что ему остаётся — это дописать цифры в конец некоторых чисел.

Вася хочет, чтобы после дописывания цифр последнее число в списке оказалось наименьшим возможным. Найдите это число.

Входные данные
Первая строка входных данных содержит целое число n
(2≤n≤3⋅105
) — количество чисел в тетрадке у Васи.

Следующие n
строк содержат n
чисел, записанных в тетрадке, по одному в каждой строке. Все числа натуральные, не превосходящие 109
.

Выходные данные
Программа должна вывести наименьшее число, которое могло оказаться у Васи в конце списка.

Решение:

Чтобы решить задачу, давайте разберёмся с условиями и шагами, которые нам нужно предпринять.

Шаг 1: Понимание задачи

Вася хочет, чтобы числа в его тетрадке были упорядочены по неубыванию. Он может добавлять цифры к числам, но не может их изменять или удалять. Наша цель — сделать так, чтобы последнее число в списке было как можно меньше.

Шаг 2: Входные данные

Мы получаем:
1. Число n — количество чисел.
2. Последующие n строк содержат сами числа.

Шаг 3: Алгоритм

1. Прочитаем все числа и сохраним их в список.
2. Начнём с последнего числа и будем проверять, может ли оно быть меньше или равно предыдущему числу в списке, добавляя к нему цифры.
3. Если текущее число больше предыдущего, мы будем добавлять к нему цифры, чтобы оно стало равным или меньше предыдущего.
4. Мы будем делать это до тех пор, пока не дойдём до первого числа.

Шаг 4: Реализация

Теперь давайте реализуем этот алгоритм на Python:

1. Мы считываем количество чисел и сами числа. 2. Начинаем с последнего числа и проходим по списку в обратном порядке. 3. Если текущее число больше последнего, мы обновляем последнее число, добавляя к нему цифры, чтобы оно стало равным текущему. 4. В конце выводим последнее число, которое будет наименьшим возможным. Допустим, у нас есть числа: , , . - Начинаем с , проверяем — оно меньше, значит, остаётся. - Проверяем — оно меньше , значит, остаётся. - Ответ будет . Таким образом, мы можем получить наименьшее число, которое может оказаться в конце списка, следуя описанному алгоритму.

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет