def floyd_warshall(n, edges): dist = [[float('inf')] * n for _ in range(n)] for i in range(n): dist[i][i] = 0 for u, v, w in edges: dist[u][v] = dist[v][u] = w for k in range(n): for i in range(n): for j in range(n): dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]) return dist T = int(input()) for t in range(1, T+1): W, E, C = map(int, input().split()) west = list(map(int, input().split())) east = list(map(int, input().split())) options = [tuple(map(int, input().split())) for _ in range(C)] edges = [] for i in range(W-1): edges.append((i, i+1, 1)) edges.append((i+1, i, 1)) for i in range(E-1): edges.append((W+i, W+i+1, 1)) edges.append((W+i+1, W+i, 1)) for a, b in options: edges.append((a-1, W+b-1, 0)) edges.append((W+b-1, a-1, 0)) dist = floyd_warshall(W+E, edges) total_distance = 0 total_pairs = W*E for i in range(W): for j in range(E): total_distance += dist[i][W+j] avg_distance = total_distance / total_pairs result = [avg_distance] for a, b in options: total_distance = 0 for i in range(W): total_distance += dist[i][W+b-1] for j in range(E): total_distance += dist[a-1][W+j] avg_distance = total_distance / total_pairs result.append(avg_distance) print(f"Case #{t}: {' '.join(f'{x:.6f}' for x in result)}")