2018년 7월 2일 월요일

백준 1002 터렛

주의사항

(x1, y1)과 (x2, y2)가 같은 경우도 생각해야 함!
원 하나가 다른 원 하나를 포함하는 경우도 생각해야 함. 포함하여 접점이 1개일 수도 있고, 포함해서 접점이 없을 수도 있다.

근데 이 모든 것을 간단하게 처리하는 방법도 있다.

#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main(void) {
    int t;
    scanf("%d", &t);
    while(t--) {
        double x1, y1, x2, y2;
        double dist[3];
        scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &dist[0], &x2, &y2, &dist[1]);
        dist[2]=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        sort(dist, dist+3);
        if(dist[0]==0 && dist[1]==dist[2]) {       
            printf("-1\n");
        }
        else if(dist[2]>dist[1]+dist[0]) {
            printf("0\n");
        }
        else if(dist[2]==dist[1]+dist[0]) {
            printf("1\n");
        }
        else {
            printf("2\n");
        }
    }
    return 0;
}


댓글 없음:

댓글 쓰기