본문 바로가기
알고리즘 문제 풀이

[백준] - 어린 왕자 - 복습

by pinok1o 2021. 1. 30.

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

출발점과 도착점이 각 행성들 범위 안에 있으면 +1
둘다 범위 안에 있으면 경계를 지나가지 않아도 됨으로 보정 -2


#include <iostream>

using namespace std;

int X[55];
int Y[55];
int P[55];

int main()
{
    int T;
    cin >> T;

    for (int i = 0; i < T; i++)
    {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;

        int n; 
        cin >> n;
        for (int j = 0; j < n; j++)
        {
            cin >> X[j];
            cin >> Y[j];
            cin >> P[j];
        }

        int cnt = 0;
        for (int j = 0; j < n; j++)
        {
            int check = 0;
            if ((x1 - X[j])*(x1 - X[j]) + (y1 - Y[j])*(y1 - Y[j]) < P[j] * P[j]) {
                check++;
                cnt++;
            }
            if ((x2 - X[j])*(x2 - X[j]) + (y2 - Y[j])*(y2 - Y[j]) < P[j] * P[j]) {
                check++;
                cnt++;
            }
            if (check == 2)
                cnt -= 2;
        }

        cout << cnt << endl;

    }
}

댓글