출처 : https://www.acmicpc.net/problem/1004
정답 : https://github.com/stemp12/study/blob/master/acmicpc.net/2016.07/1004.cpp
문제가 터렛과 비슷한것 같다.
결국 반지름길이를 이용하고 두점사이의 거리를 이용하여 풀면된다.
두점사이의거리는 피타고라스의 정의로 풀 수 있다.
접근 방법은 다음과 같다.
1. 행성의 중심점과 반지름을 주면 먼저 중심점에서 시작점과 도착점간의 거리를 계산한다.
2. 계산값이 반지름보다 작다면 원에 포함되는 것이다.
3. 각각을 따로 해야한다. 시작점도 넘어서고 도착점도 넘어서면 2개의 행성을 넘어선다는 말이다.
4. 유의할점이 있다면 시작점과 끝점 둘다 한원에 포함될 수도 있으므로 이 부분에 대해 따로 처리를 해줘야한다.
5. 피타고라스정의에서는 루트르 쓰지만 본 문제에서는 루트보다 거리역시 제곱을 해주는것이 정확성을 높이고 실제로 정답을 나오게 한다.
간단한 문제이지만 당황할수도 있는 문제라고 생각하였다.
'Algorithm' 카테고리의 다른 글
[AC]1065 한수 , 1072 게임 (0) | 2016.07.06 |
---|---|
[AC] 1562 계단 수 (0) | 2016.07.05 |
[Self_AC] 9813 계산기 (0) | 2016.07.04 |
[AC] 1057 토너먼트 (0) | 2016.07.04 |
[AC] 1587 이분 매칭 (0) | 2016.07.01 |