백준 1002 : 터렛

결과적으로 우리가 구해야 하는 것은 두 원의 위치관계를 구하는것이다.

두 원의 위치관계..는 구글링하면 나보다 더 상세하게 알려주고있다.

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int solve() {
    int x1, x2, y1, y2, r1, r2, cnt;
    scanf("%d %d %d %d %d %d", &x1, &y1, &r1, &x2, &y2, &r2);

    float distance = sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));

    if(distance == 0 && r1 == r2)
        cnt = -1;
    else if(abs(r1-r2) < distance && distance < r1+r2)
        cnt = 2;
    else if(r1+r2 == distance || abs(r1-r2) == distance)
        cnt = 1;
    else
        cnt = 0;

    printf("%d\n", cnt);
}
 
int main() {
    int test;
    scanf("%d", &test);
    for(int i=0;i<test;i++)
        solve();
    return 0; 
}

 

계속 틀려서 개1빡쳤는데 알고보니까 distance를 int형으로 선언해서 틀린거였다 씨바.. 실수는 하지말자