/
Kwasik
/
aaa-algorithms_2
Обзор
Документация
Войти
/
Kwasik
/
aaa-algorithms_2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
homework-5
Task5_Heaps/solution_2.py
32 строки
1 KB
Eduard Shashkov
HW-5
29 дек 2024, 13:15
29 дек 2024, 13:15
33158ab
Код
Авторство
О чём код?
import heapq def merge_k_sorted(arrs: list) -> list: # Создаем кучу heap = [] result = [] # Добавляем первый элемент каждого массива в кучу for i in range(len(arrs)): if arrs[i]: # Если массив не пустой heapq.heappush(heap, (arrs[i][0], i, 0)) # (значение, индекс массива, индекс элемента) # Извлекаем минимальный элемент из кучи и добавляем в результат while heap: value, array_idx, element_idx = heapq.heappop(heap) result.append(value) # Если в текущем массиве есть ещё элементы, добавляем следующий в кучу if element_idx + 1 < len(arrs[array_idx]): next_value = arrs[array_idx][element_idx + 1] heapq.heappush(heap, (next_value, array_idx, element_idx + 1)) return result def solution(): arrs = read_multiline_input() # Эта функция читает массивы из ввода merged = merge_k_sorted(arrs) print(' '.join(map(str, merged))) solution()