import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
import java.util.LinkedList;
import java.util.Queue;
public class Test {
	static int N;
	static int x,y;
	static int distance = 1000; // 20*50
	static Point festival;
	static Point home;
	public static void main(String[] args) throws IOException { 
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		
		int T = Integer.parseInt(br.readLine());
		
		for(int testCase=1; testCase<=T; testCase++) {
			N = Integer.parseInt(br.readLine()); //맥주 파는 편의점 개수

			//집
			st=new StringTokenizer(br.readLine()," ");
			x=Integer.parseInt(st.nextToken());
			y=Integer.parseInt(st.nextToken());
			home = new Point(x,y);
			//편의점 N개
			Point[] cvStores = new Point[N];
			for(int i=0; i<N; i++) {
				st = new StringTokenizer(br.readLine());
				x=Integer.parseInt(st.nextToken());
				y=Integer.parseInt(st.nextToken());
				cvStores[i]=new Point(x,y);
			}
			//펜타포트 락 페스티벌
			st = new StringTokenizer(br.readLine());
			x=Integer.parseInt(st.nextToken());
			y=Integer.parseInt(st.nextToken());
			festival = new Point(x,y);
	
			bw.write((isHappyFestival(cvStores) ? "happy": "sad") + "\n");
		}
		bw.flush();
		bw.close();
	}
	
	static boolean isHappyFestival(Point[] cvStores) {
		
		boolean[] visited = new boolean[N];
		Queue<Point> q = new LinkedList<>();
		q.add(home);
		while(!q.isEmpty()) {
			Point p = q.poll();
			if(getDistance(p,festival)<= distance) return true;
		
			for(int i=0; i<N; i++) {
				if(!visited[i] && getDistance(p,cvStores[i])<=distance ) {
					visited[i] = true;
					q.add(cvStores[i]);
				}
			}
		}
		return false;
	}
	
	static int getDistance(Point p1, Point p2) {
		return Math.abs(p1.x-p2.x)+Math.abs(p1.y-p2.y);
	}
}
class Point{
	int x;
	int y;
	
	Point(int x, int y){
		this.x = x;
		this.y = y;
	}
}

 

'NOTE > BAEKJOON' 카테고리의 다른 글

20188 등산 마니아  (0) 2022.10.10
9084 동전  (0) 2022.10.08
14502 연구소  (1) 2022.09.30
2565 전깃줄  (0) 2022.03.21
11054 가장 긴 바이토닉 부분 수열  (0) 2022.03.21

+ Recent posts