한 정점(x₁, y₁)과의 거리가 r₁보다 작거나 같고 x좌표와 y좌표가 정수인 모든 점과
한 정점(x₂, y₂)과의 거리가 r₂보다 작거나 같고 x좌표와 y좌표가 정수인 모든 점 중에서
같은 점의 개수를 출력하는 문제.
다시 말해 원 (x-x₁)² + (y-y₁)² = r₁²과 원 (x-x₂)² + (y-y₂)² = r₂²의 교점의 개수를 출력하는 문제다.
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 | #include <stdio.h> int run(); int main() { return run(); } int run() { int x1, y1, r1, x2, y2, r2; int r3; int num; int diff; scanf("%d", &num); for (; num; --num) { scanf("%d %d %d %d %d %d", &x1, &y1, &r1, &x2, &y2, &r2); r3 = (x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1); diff = r2 - r1; if (diff < 0) { diff *= -1; } if (r3) { if ((diff*diff < r3) && (r3 < (r1 + r2)*(r1 + r2))) { printf("2\n"); } else if ((r3 == diff*diff) || (r3 == (r1 + r2)*(r1 + r2))) { printf("1\n"); } else { printf("0\n"); } } else { if (r1 == r2) { printf("-1\n"); } else { printf("0\n"); } } } return 0; } | cs |
'Programming > Solutions' 카테고리의 다른 글
[Project Euler] Problem 004 (0) | 2019.03.20 |
---|---|
[Project Euler] Problem 003 (0) | 2019.03.19 |
[BAEKJOON] 2839번: 설탕 배달 (0) | 2019.03.19 |
[Project Euler] Problem 002 (0) | 2019.03.18 |
[Project Euler] Problem 001 (0) | 2019.03.17 |