def solve() -> None:
n, m = invr()
graph: list[list[tuple[int, int, int]]] = [[] for _ in range(n)]
goated_tunnels: set[tuple[int, int]] = set()
sum_c: int = 0
for i in range(m):
a, b, c, r = invr()
a -= 1
b -= 1
sum_c += c
graph[a].append((b, c, r))
graph[b].append((a, c, r))
if r > c:
goated_tunnels.add((a, b))
goated_tunnels.add((b, a))
low: int = 0
high: int = sum_c
def check(mid: int) -> bool:
stack: list[tuple[int, int]] = [(-mid, 0)] # (-coins, node)
visited: set[int] = set() # (node: coins)
while stack:
coins: int
node: int
coins, node = heapq.heappop(stack)
coins = -coins
if node in visited:
continue
visited.add(node)
for neighbour, cost, reward in graph[node]:
if coins >= cost:
if (node, neighbour) in goated_tunnels:
return True
if neighbour == n - 1:
return True
if neighbour not in visited:
heapq.heappush(stack, (-(coins - cost + reward), neighbour))
return False
while low < high:
mid: int = (low + high) // 2
if check(mid):
high = mid
else:
low = mid + 1
print(low)
ZGVmIHNvbHZlKCkgLT4gTm9uZToKICAgIG4sIG0gPSBpbnZyKCkKCiAgICBncmFwaDogbGlzdFtsaXN0W3R1cGxlW2ludCwgaW50LCBpbnRdXV0gPSBbW10gZm9yIF8gaW4gcmFuZ2UobildCiAgICBnb2F0ZWRfdHVubmVsczogc2V0W3R1cGxlW2ludCwgaW50XV0gPSBzZXQoKQogICAgc3VtX2M6IGludCA9IDAKICAgIGZvciBpIGluIHJhbmdlKG0pOgogICAgICAgIGEsIGIsIGMsIHIgPSBpbnZyKCkKICAgICAgICBhIC09IDEKICAgICAgICBiIC09IDEKICAgICAgICBzdW1fYyArPSBjCiAgICAgICAgZ3JhcGhbYV0uYXBwZW5kKChiLCBjLCByKSkKICAgICAgICBncmFwaFtiXS5hcHBlbmQoKGEsIGMsIHIpKQogICAgICAgIGlmIHIgPiBjOgogICAgICAgICAgICBnb2F0ZWRfdHVubmVscy5hZGQoKGEsIGIpKQogICAgICAgICAgICBnb2F0ZWRfdHVubmVscy5hZGQoKGIsIGEpKQoKICAgIGxvdzogaW50ID0gMAogICAgaGlnaDogaW50ID0gc3VtX2MKCiAgICBkZWYgY2hlY2sobWlkOiBpbnQpIC0+IGJvb2w6CiAgICAgICAgc3RhY2s6IGxpc3RbdHVwbGVbaW50LCBpbnRdXSA9IFsoLW1pZCwgMCldICAjICgtY29pbnMsIG5vZGUpCiAgICAgICAgdmlzaXRlZDogc2V0W2ludF0gPSBzZXQoKSAgIyAobm9kZTogY29pbnMpCiAgICAgICAgd2hpbGUgc3RhY2s6CiAgICAgICAgICAgIGNvaW5zOiBpbnQKICAgICAgICAgICAgbm9kZTogaW50CiAgICAgICAgICAgIGNvaW5zLCBub2RlID0gaGVhcHEuaGVhcHBvcChzdGFjaykKICAgICAgICAgICAgY29pbnMgPSAtY29pbnMKICAgICAgICAgICAgaWYgbm9kZSBpbiB2aXNpdGVkOgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgdmlzaXRlZC5hZGQobm9kZSkKICAgICAgICAgICAgZm9yIG5laWdoYm91ciwgY29zdCwgcmV3YXJkIGluIGdyYXBoW25vZGVdOgogICAgICAgICAgICAgICAgaWYgY29pbnMgPj0gY29zdDoKICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSwgbmVpZ2hib3VyKSBpbiBnb2F0ZWRfdHVubmVsczoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgICAgICAgICBpZiBuZWlnaGJvdXIgPT0gbiAtIDE6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgICAgICAgICAgICAgaWYgbmVpZ2hib3VyIG5vdCBpbiB2aXNpdGVkOgogICAgICAgICAgICAgICAgICAgICAgICBoZWFwcS5oZWFwcHVzaChzdGFjaywgKC0oY29pbnMgLSBjb3N0ICsgcmV3YXJkKSwgbmVpZ2hib3VyKSkKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICB3aGlsZSBsb3cgPCBoaWdoOgogICAgICAgIG1pZDogaW50ID0gKGxvdyArIGhpZ2gpIC8vIDIKICAgICAgICBpZiBjaGVjayhtaWQpOgogICAgICAgICAgICBoaWdoID0gbWlkCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbG93ID0gbWlkICsgMQoKICAgIHByaW50KGxvdykK
Main.java:1: error: class, interface, or enum expected
def solve() -> None:
^
Main.java:22: error: illegal character: '#'
stack: list[tuple[int, int]] = [(-mid, 0)] # (-coins, node)
^
Main.java:23: error: illegal character: '#'
visited: set[int] = set() # (node: coins)
^
3 errors