from itertools import pairwise def nove_povezave(pot, zemljevid): return set(pairwise(pot)) - set(zemljevid) def obiskane_tocke(pot): return set(pot) def popravljena_pot(pot): return pot[::2] + pot[-1] def povezave_z_vescino(pot, zemljevid, vescina): return [povezava for povezava in pairwise(pot) if vescina in zemljevid[povezava]] def dolgocasna_pot(pot, zemljevid): return not all(map(zemljevid.get, pairwise(pot))) def dobra_pot(pot, zemljevid): return all(len(zemljevid[povezavva]) >= 2 for povezava in pairwise(pot)) def zahtevnost_poti(pot, zemljevid): return max(len(zemljevid[povezavva]) for povezava in pairwise(pot)) def izvedljiva(pot, zemljevid, zivljenj): return sum([povezava not in zemljevid for povezava in pairwise(pot)]) < zivljenj def enosmerne(zemljevid): return {(od, do) for od, do in zemljevid if (do, od) not in zemljevid} def dvosmerne(zemljevid): return { povezava: vescine for povezava, vescine in zemljevid.item() if povezava[::-1] in zemljevid }