Submission #1241072

#TimeUsernameProblemLanguageResultExecution timeMemory
1241072woeCircle Passing (EGOI24_circlepassing)Pypy 3
0 / 100
713 ms1114112 KiB
from collections import deque

def bfs(start, end, adj_list, n):
    visited = [-1] * (n + 1)
    queue = deque([start])
    visited[start] = 0
    
    while queue:
        current = queue.popleft()
        for neighbor in adj_list[current]:
            if visited[neighbor] == -1:
                visited[neighbor] = visited[current] + 1
                if neighbor == end:
                    return visited[neighbor]
                queue.append(neighbor)
    return -1

def solve_circle_passing(n, m, games, best_friend_pairs):
    adj_list = [[] for _ in range(n + 1)]
    
    for i in range(1, n + 1):
        adj_list[i].append(i % n + 1)
        adj_list[i % n + 1].append(i)
    
    for a, b in best_friend_pairs:
        adj_list[a].append(b)
        adj_list[b].append(a)
    
    results = []
    for start, end in games:
        results.append(bfs(start, end, adj_list, n))
    
    return results

n, m, k = map(int, input().split())
best_friend_pairs = [tuple(map(int, input().split())) for _ in range(m)]
games = [tuple(map(int, input().split())) for _ in range(k)]

results = solve_circle_passing(n, m, games, best_friend_pairs)
for result in results:
    print(result)

Compilation message (stdout)

Compiling 'Main.py'...

=======
  adding: __main__.pyc (deflated 44%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...