Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[BAEKJOON] 1004. 어린 왕자 본문

acmicpc

[BAEKJOON] 1004. 어린 왕자

코드와이 2021. 2. 4. 21:50

 

문제링크

www.acmicpc.net/problem/1004

 

1004번: 어린 왕자

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주

www.acmicpc.net

 

package acmicpc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class 어린_왕자 {

	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		
		int T = Integer.parseInt(br.readLine());
		
		for(int tc = 1 ; tc <= T ; tc++) {
			
			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());
			
			int num = Integer.parseInt(br.readLine());
			
			int ans = 0;
			
			int x,y,r;
			
			for(int i = 0 ; i < num ; i++) {
				
				st = new StringTokenizer(br.readLine(), " ");
				
				x = Integer.parseInt(st.nextToken());
				y = Integer.parseInt(st.nextToken());
				r = Integer.parseInt(st.nextToken());
				
				double a = (Math.pow((x - x1), 2) + Math.pow((y - y1), 2));
				double b = (Math.pow((x - x2), 2) + Math.pow((y - y2), 2));
				double r2 = Math.pow(r, 2);
				if( a < r2 && b < r2) continue;
				else if( a < r2 ) ans += 1;
				else if( b < r2 ) ans += 1;
				
			}
			System.out.println(ans);
		}
	}
}

'acmicpc' 카테고리의 다른 글

[BAEKJOON] 2164. 카드2  (0) 2021.02.06
[BAEKJOON] 1057. 토너먼트  (0) 2021.02.06
[BAEKJOON] 1051. 숫자 정사각형  (0) 2021.02.06
[BAEKJOON] 2309. 일곱 난쟁이  (0) 2021.02.05
[BAEKJOON] 1003. 피보나치 함수  (0) 2021.02.04