이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
from collections import deque, defaultdict
def min_jumps_to_pass_news(N, M, doges):
# Create adjacency list for the graph based on doge jumps
graph = defaultdict(list)
for b, p in doges:
if 0 <= b < N:
if 0 <= b + p < N:
graph[b].append(b + p)
if 0 <= b - p < N:
graph[b].append(b - p)
# BFS to find the shortest path
queue = deque([0]) # Start BFS from skyscraper 0
visited = [False] * N
distance = [float('inf')] * N
visited[0] = True
distance[0] = 0
while queue:
current = queue.popleft()
current_dist = distance[current]
for neighbor in graph[current]:
if not visited[neighbor]:
visited[neighbor] = True
distance[neighbor] = current_dist + 1
queue.append(neighbor)
# Check the distance to skyscraper 1
if distance[1] == float('inf'):
return -1
return distance[1]
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |