import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Young_Prince {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(st.nextToken());
for (int i = 0; i < T; i++) {
int count = 0;
st = new StringTokenizer(br.readLine());
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
for (int j = 0; j < n; j++) {
st = new StringTokenizer(br.readLine());
boolean flag = false;
int cx = Integer.parseInt(st.nextToken());
int cy = Integer.parseInt(st.nextToken());
int r = Integer.parseInt(st.nextToken());
if(Math.abs((x1-cx)*(x1-cx))+Math.abs((y1-cy)*(y1-cy))<r*r){
count++;
flag = true;
}
if(Math.abs((x2-cx)*(x2-cx))+Math.abs((y2-cy)*(y2-cy))<r*r){
if(flag)
count--;
else {
count++;
}
}
}
System.out.println(count);
}
}
}
📢이 풀이의 핵심은 내 좌표를 포함하는 원 + 목표 좌표를 포함하는 원을 구하는 것이다. (단, 내 좌표와 목표 좌표를 동시에 포함하는 것은 세지 않는다.)
동시 포함 처리를 생각해야 하는점에 주의 하자.
문제는 장황하게 어렵게 설명해놨는데 사실 핵심이 너무 별게 아니어서 잘 파악하는것이 중요했다.
Math.sqrt() 루트 처리를 해주는 메소드이다.
풀이에서는 그냥 반지름을 제곱했다.
어린왕자라 1004번인가..?