Для решения данной задачи можно использовать встроенные возможности языка Python для сортировки с помощью функции sorted()
и параметра key
, который позволяет задать критерий сортировки. В данном случае критерием будет последняя цифра числа. Кроме того, мы должны сохранить порядок следования чисел с одинаковыми последними цифрами, что также поддерживается функцией sorted()
, так как она является устойчивой.
Вот пример программы, которая решает данную задачу:
def sort_by_last_digit(n, numbers):
# Преобразуем строку чисел в список целых чисел
numbers = list(map(int, numbers.split()))
# Сортируем числа по последней цифре, используя lambda-функцию
sorted_numbers = sorted(numbers, key=lambda x: x % 10)
# Преобразуем отсортированный список чисел обратно в строку
result = ' '.join(map(str, sorted_numbers))
# Возвращаем результат
return result
# Чтение входных данных
n = int(input().strip()) # Читаем размер массива, но он нам не понадобится
numbers = input().strip() # Читаем числа в виде строки
# Получаем отсортированный массив и выводим его
output = sort_by_last_digit(n, numbers)
print(output)
Пояснение:
Ввод данных: Сначала читаем размер массива n
, но он нам не нужен, так как Python предоставляет возможность работать со списками без необходимости заранее задавать их размер. Затем читаем строку с числами и преобразуем её в список целых чисел с помощью map(int, .)
.
Сортировка: Используем функцию sorted()
с параметром key=lambda x: x % 10
, чтобы сортировать числа по последней цифре. Оператор % 10
позволяет получить последнюю цифру числа.
Вывод результата: Преобразуем отсортированный список обратно в строку с помощью map(str, .)
и join()
, после чего выводим результат.
Данная программа эффективно решает задачу сортировки и работает в пределах ограничения на количество элементов массива.