Решение задачи Тройная сортировка с Яндекс Контест

Без пояснения   Просмотров: 1050


Требуется реализовать алгоритм, который принимает на вход три последовательности отсортированных по возраставнию натуральных чисел от 0 до 109 и возвращает в качестве результата одну отсортированную последовательность, состоящую из тех чисел, что были во входных последовательностях.


Код

def merge(a, b):
    idx1, idx2 = 0, 0
    res = []
    while idx1 < len(a) and idx2 < len(b):
        if a[idx1] >= b[idx2]:
            res.append(b[idx2])
            idx2 += 1
        else:
            res.append(a[idx1])
            idx1 += 1
    res += a[idx1:] + b[idx2:]
    return res


n, m, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
c = list(map(int, input().split()))
if n == 0:
    raise SystemExit
main = merge(a, b)
print(*(merge(main, c)))

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет