https://www.acmicpc.net/problem/9205
"""
from collections import deque
T = int(input())
def cmp(x, y): # 거리가 1000이하인(맥주 20캔 풀 충전) 그래프 끼리 연결
if abs(xy[x][0] - xy[y][0]) + (abs(xy[x][1] - xy[y][1]) ) <= 1000:
graph[x+1].append(y+1)
graph[y+1].append(x+1)
def bfs(st, en): # 출발지에서 도착지로 도착하면 answer에 "happy" 출력
global answer
visited[st] = True
q = deque([st])
while q:
node = q.popleft()
if node == en:
answer = "happy"
break
for i in graph[node]:
if not visited[i]:
visited[i] = True
q.append(i)
for _ in range(T):
N = int(input())
graph = [ [] for _ in range(N+3) ]
xy = []
for _ in range(N+2):
a, b = map(int, input().split())
xy.append((a, b))
for i in range(N+2):
for j in range(N+2):
if i != j:
cmp(i, j)
visited = [False] * (N+3)
answer = "sad"
bfs(1, N+2)
print(answer)
거리가 1000이하인 그래프 끼리 연결해서 BFS로 탐색 후 출발지에서 도착지에 도착할 수 있으면 "happy" 그렇지 않으면 "sad" 출력