반응형
https://www.acmicpc.net/problem/1004
1004번: 어린 왕자
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주
www.acmicpc.net
오래전에 풀은 문제라 기억은 안나지만 두 원간의 거리를 비교하여 해결한 것으로 보인다.
#include <stdio.h>
#include <stdlib.h>
void main()
{
int testcase;
int x1, y1, x2, y2;
int n;
int cx, cy, r;
int i;
int num_answer, plag;
scanf("%d", &testcase);
while (testcase--)
{
num_answer = 0;
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
scanf("%d", &n);
/////////
// cx = (int*) malloc(sizeof(int) *n);
// cy = (int*) malloc(sizeof(int) *n);
// r = (int*) malloc(sizeof(int) *n);
/////////
for (i = 0; i < n; i++)
{
plag = 0;
scanf("%d %d %d", &cx, &cy, &r);
if ((r * r) > (cx - x1) * (cx - x1) + (cy - y1) * (cy - y1))
{ // 출발점
plag = 1;
num_answer++;
}
if ((r * r) > (cx - x2) * (cx - x2) + (cy - y2) * (cy - y2))
{
if (plag == 1)
num_answer--;
else
num_answer++;
}
}
printf("%d\n", num_answer);
}
// fflush(stdin);
}
반응형