You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
3.3 KiB
Python
67 lines
3.3 KiB
Python
data = [('FloraPrice', 'E11'), ('FloraPrice', 'E9'), ('FloraPrice', '75D}'),
|
|
('NoraFayette', 'E11'), ('NoraFayette', 'E10'), ('NoraFayette', 'E13'),
|
|
('NoraFayette', 'E12'), ('NoraFayette', 'E14'), ('NoraFayette', 'E9'),
|
|
('NoraFayette', 'E7'), ('NoraFayette', 'E6'), ('E10',
|
|
'SylviaAvondale'),
|
|
('E10', 'MyraLiddel'), ('E10', 'HelenLloyd'), ('E10',
|
|
'KatherinaRogers'),
|
|
('VerneSanderson', 'E7'), ('VerneSanderson', 'E12'),
|
|
('VerneSanderson', 'E9'), ('VerneSanderson', 'E8'),
|
|
('E12', 'HelenLloyd'), ('E12', 'KatherinaRogers'),
|
|
('E12', 'SylviaAvondale'), ('E12', 'MyraLiddel'),
|
|
('E14', 'SylviaAvondale'), ('E14', '75D}'), ('E14', 'KatherinaRogers'),
|
|
('FrancesAnderson', 'E5'), ('FrancesAnderson', 'E6'),
|
|
('FrancesAnderson', 'E8'), ('FrancesAnderson', 'E3'),
|
|
('DorothyMurchison', 'E9'), ('DorothyMurchison', 'E8'),
|
|
('EvelynJefferson', 'E9'), ('EvelynJefferson', 'E8'),
|
|
('EvelynJefferson', 'E5'), ('EvelynJefferson', 'E4'),
|
|
('EvelynJefferson', 'E6'), ('EvelynJefferson', 'E1'),
|
|
('EvelynJefferson', 'E3'), ('EvelynJefferson', 'E2'),
|
|
('RuthDeSand', 'E5'), ('RuthDeSand', 'E7'), ('RuthDeSand', 'E9'),
|
|
('RuthDeSand', 'E8'), ('HelenLloyd', 'E11'), ('HelenLloyd', 'E7'),
|
|
('HelenLloyd', 'E8'), ('OliviaCarleton', 'E11'),
|
|
('OliviaCarleton', 'E9'), ('EleanorNye', 'E5'), ('EleanorNye', 'E7'),
|
|
('EleanorNye', 'E6'), ('EleanorNye', 'E8'), ('E9', 'TheresaAnderson'),
|
|
('E9', 'PearlOglethorpe'), ('E9', 'KatherinaRogers'),
|
|
('E9', 'SylviaAvondale'), ('E9', 'MyraLiddel'),
|
|
('E8', 'TheresaAnderson'), ('E8', 'PearlOglethorpe'),
|
|
('E8', 'KatherinaRogers'), ('E8', 'SylviaAvondale'),
|
|
('E8', 'BrendaRogers'), ('E8', 'LauraMandeville'), ('E8',
|
|
'MyraLiddel'),
|
|
('E5', 'TheresaAnderson'), ('E5', 'BrendaRogers'),
|
|
('E5', 'LauraMandeville'), ('E5', 'CharlotteMcDowd'),
|
|
('E4', 'CharlotteMcDowd'), ('E4', 'TheresaAnderson'),
|
|
('E4', 'BrendaRogers'), ('E7', 'TheresaAnderson'),
|
|
('E7', 'SylviaAvondale'), ('E7', 'BrendaRogers'),
|
|
('E7', 'LauraMandeville'), ('E7', 'CharlotteMcDowd'),
|
|
('E6', 'TheresaAnderson'), ('E6', 'PearlOglethorpe'),
|
|
('E6', 'BrendaRogers'), ('E6', 'LauraMandeville'),
|
|
('E1', 'LauraMandeville'), ('E1', 'BrendaRogers'),
|
|
('E3', 'TheresaAnderson'), ('E3', 'BrendaRogers'),
|
|
('E3', 'LauraMandeville'), ('E3', 'CharlotteMcDowd'), ('E3', 'flag{'),
|
|
('E2', 'LauraMandeville'), ('E2', 'TheresaAnderson'),
|
|
('KatherinaRogers', 'E13'), ('E13', 'SylviaAvondale')]
|
|
from collections import *
|
|
from typing import *
|
|
from queue import *
|
|
edges: Dict[str, List[str]] = defaultdict(list)
|
|
dis: Dict[str, int] = {}
|
|
path: Dict[str, str] = defaultdict(str)
|
|
for f, t in data:
|
|
edges[f].append(t)
|
|
edges[t].append(f)
|
|
dis[f] = dis[t] = 0x3f3f3f3f
|
|
|
|
q = Queue()
|
|
q.put("flag{")
|
|
dis["flag{"] = 0
|
|
while not q.empty():
|
|
x = q.get()
|
|
print(x)
|
|
for e in edges[x]:
|
|
if dis[e] > dis[x] + 1:
|
|
dis[e] = dis[x] + 1
|
|
path[e] = path[x] + e
|
|
q.put(e)
|
|
|
|
print(path["75D}"]) |