# Máme 2 seznamy, každý je tvořen neklesající posloupností
# celých čísel. Úkolem je sloučit tyto seznamy, tj. vytvořit
# nový seznam obsahující všechny prvky obou tak, že opět
# tvoří neklesající posloupnost.

def slouceni(rada1, rada2):
    rada = [] # začínáme s prázdným výsledkem
    index1 = 0 # aktuální prvek v 1. seznamu
    index2 = 0 # aktuální prvek v 2. seznamu
    # dokud jsou v obou seznamech nezpracované prvky
    while index1 < len(rada1) and index2 < len(rada2):
        # vložení menšího z nich, aktualizace indexu
        if rada1[index1] < rada2[index2]:
            rada.append(rada1[index1])
            index1 += 1
        else:
            rada.append(rada2[index2])
            index2 += 1
    # alespoň jeden ze seznamů je nyní plně zpracován,
    # vložení zbylých prvků (najednou jako podseznam)
    if index1 < len(rada1):
        rada.extend(rada1[index1:])
    elif index2 < len(rada2):
        rada.extend(rada2[index2:])
    return rada

# vstupní seznamy
rada1 = [0, 5, 8, 11, 12, 15, 20, 21, 26]
rada2 = [1, 4, 6, 8, 10, 17]

print(slouceni(rada1, rada2))
print(slouceni(rada1, []))
