ACM준비/acmicpc

어린왕자

조규현15 2015. 7. 7. 18:12
반응형

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);
}

 

 

반응형

'ACM준비 > acmicpc' 카테고리의 다른 글

습격자 초라기  (0) 2015.10.31
ACM Craft  (0) 2015.10.30
터렛  (0) 2015.07.07
Bee Maja  (0) 2015.01.08
Contest Scoreboard  (0) 2015.01.08