Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def solve(vrski, Covece, Zvezdi_pozicii):
- queue = []
- queue.append((Covece, [], [], set()))
- while len(queue) != 0:
- (Pozicija, Cekori, Poseteni, Zvezdi) = queue.pop(0)
- if len(Zvezdi) == 2:
- return Cekori
- for nasoka in vrski[Pozicija].keys():
- sosed = vrski[Pozicija][nasoka]
- if (Pozicija, sosed) in Poseteni or (sosed, Pozicija) in Poseteni:
- continue
- else:
- Novi_Cekori = Cekori.copy()
- Novi_Cekori.append(nasoka)
- Novi_Poseteni = Poseteni.copy()
- Novi_Zvezdi = Zvezdi.copy()
- if sosed in Zvezdi_pozicii:
- Novi_Zvezdi.add(sosed)
- Novi_Poseteni.append((Pozicija, sosed))
- Novi_Poseteni.append((sosed, Pozicija))
- queue.append((sosed, Novi_Cekori,Novi_Poseteni, Novi_Zvezdi))
- return -1
- if __name__ == "__main__":
- Covece = int(input())
- Zvezda_1 = int(input())
- Zvezda_2 = int(input())
- vrski = {
- 1: {"Dolu": 5, "Desno": 2},
- 2: {"Dolu": 6, "Levo": 1},
- 3: {"Dolu": 7, "Desno": 4},
- 4: {"Levo": 3, "Dolu": 8},
- 5: {"Gore": 1, "Desno": 6},
- 6: {"Gore": 2,"Dolu": 10, "Levo": 5, "Desno": 7, "DoluDesno": 11},
- 7: {"Gore": 3,"Dolu": 11, "Levo": 6, "Desno": 8},
- 8: {"Gore": 4, "Levo": 7},
- 9: {"Desno": 10, "Dolu": 13},
- 10: {"Gore": 6,"Dolu": 14, "Levo": 9, "Desno": 11},
- 11: {"Gore": 7,"Dolu": 15, "Levo": 10, "Desno": 12, "GoreLevo": 6},
- 12: {"Levo": 11, "Dolu": 16},
- 13: {"Gore": 9, "Desno": 14},
- 14: {"Levo": 13, "Gore": 10},
- 15: {"Gore": 11, "Desno": 16},
- 16: {"Levo": 15, "Gore": 12}
- }
- print(solve(vrski, Covece, (Zvezda_1, Zvezda_2)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement