다음과 같은 경우의 수가 있다.
따라서 이 경우를 각각 코딩해주면된다.
f는 두원이 겹치는 겅우이다.
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 | #include <cstdio> #include <algorithm> using namespace std; int x1,y1,r1,x2,y2,r2; int T; int main(void){ scanf("%d", &T); while(T--){ scanf("%d %d %d %d %d %d", &x1, &y1, &r1, &x2, &y2, &r2); if(x1 == x2 && y1 == y2 && r1 == r2){ printf("-1\n"); continue; } int d = (x1 - x2) *(x1 - x2) + (y1 - y2) * (y1 - y2); if(d > (r1 + r2) * (r1 + r2) ){ printf("0\n"); } else if(d == (r1 + r2) * (r1 + r2)){ printf("1\n"); } else if(d > (r1 - r2) * (r1 - r2)){ printf("2\n"); } else if(d == (r1 - r2) * (r1 - r2)){ printf("1\n"); } else{ printf("0\n"); } } } | cs |
'알고리즘' 카테고리의 다른 글
비트연산 공부하기 (0) | 2018.11.26 |
---|---|
비트연산 실수하기 쉬운것들 (0) | 2018.11.26 |
백준(BOJ) 2442 별찍기-5 (0) | 2018.11.26 |
백준(BOJ) 1026 보물 (0) | 2018.11.26 |
백준(BOJ) 2751 수 정렬하기2 (0) | 2018.11.26 |