from collections import deque import heapq def bfs(start, adj_list, n): dist = [-1] * (n + 1) q = deque() q.append(start) dist[start] = 0 while q: u = q.popleft() for v in adj_list[u]: if dist[v] == -1: dist[v] = dist[u] + 1 q.append(v) return dist def compute_avg_dist(west, east, overpasses): n = len(west) + len(east) adj_list = [[] for _ in range(n + 1)] for i in range(len(west) - 1): adj_list[west[i]].append(west[i + 1]) adj_list[west[i + 1]].append(west[i]) for i in range(len(east) - 1): adj_list[east[i]].append(east[i + 1]) adj_list[east[i + 1]].append(east[i]) for a, b in overpasses: adj_list[a].append(len(west) + b) adj_list[len(west) + b].append(a) dist = [[-1] * (n + 1) for _ in range(n + 1)] for i in range(1, n + 1): dist[i] = bfs(i, adj_list, n) avg_dist = 0 for i in range(1, len(west) + 1): for j in range(len(west) + 1, n + 1): avg_dist += dist[i][j] num_pairs = len(west) * len(east) return avg_dist / num_pairs def solve(): T = int(input()) for case in range(1, T + 1): W, E, C = map(int, input().split()) west = list(range(1, W + 1)) east = list(range(W + 1, W + E + 1)) overpasses = [] for i in range(W - 1): west[i + 1] = int(input()) for i in range(E - 1): east[i + 1] = int(input()) for i in range(C): a,