백준 1004 : 어린 왕자 / C++

2023. 2. 5. 15:23개인공부/코딩테스트

https://www.acmicpc.net/problem/1004

 

1004번: 어린 왕자

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

www.acmicpc.net

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    int TestCase =0;
    cin >> TestCase;
    
    
    for(int i=0; i<TestCase; ++i)
    {
        double startX, startY, endX, endY;
        cin >> startX >> startY >> endX >> endY;
         
        int Result =0;
        int Planet =0;
        cin >> Planet;
        for(int j=0; j< Planet; ++j)
        {
            double X, Y , r;
            cin >> X >> Y >> r;
            double start = hypot(startX - X, startY- Y);
            double end   = hypot(endX - X, endY- Y);
            if( r> start && r < end)
            Result++;
            else if(r < start && r> end)
            {
                Result++;
            }
        }
        
        cout << Result << endl;
    }
    
    
    
    
    
    return 0;
}
 
cs