class Solution:
def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, K: int) -> int:
if src == dst: return 0
d, seen = collections.defaultdict(list), collections.defaultdict(lambda: float('inf'))
for u, v, p in flights:
d[u] += [(v, p)]
queue = [(src, -1, 0)]
while queue:
position, k, cost = queue.pop(0)
if position == dst or k == K:
continue
for nei, p in d[position]:
if cost + p >= seen[nei]:
continue
else:
seen[nei] = cost+p
queue += [(nei, k+1, cost+p)]
return seen[dst] if seen[dst] < float('inf') else -1
313B - Ilya and Queries | 579A - Raising Bacteria |
723A - The New Year Meeting Friends | 302A - Eugeny and Array |
1638B - Odd Swap Sort | 1370C - Number Game |
1206B - Make Product Equal One | 131A - cAPS lOCK |
1635A - Min Or Sum | 474A - Keyboard |
1343A - Candies | 1343C - Alternating Subsequence |
1325A - EhAb AnD gCd | 746A - Compote |
318A - Even Odds | 550B - Preparing Olympiad |
939B - Hamster Farm | 732A - Buy a Shovel |
1220C - Substring Game in the Lesson | 452A - Eevee |
1647B - Madoka and the Elegant Gift | 1408A - Circle Coloring |
766B - Mahmoud and a Triangle | 1618C - Paint the Array |
469A - I Wanna Be the Guy | 1294A - Collecting Coins |
1227A - Math Problem | 349A - Cinema Line |
47A - Triangular numbers | 1516B - AGAGA XOOORRR |