조규현15
2015. 7. 7. 18:10
반응형
https://www.acmicpc.net/problem/1002
1002번: 터렛
각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.
www.acmicpc.net
3가지의 예외 케이스를 잘 구분하고 처리하면 된다.
#include <stdio.h>
#include <math.h>
int main(void)
{
int test;
int x1, y1, x2, y2, r1, r2;
double d;
int ret;
scanf("%d", &test);
while (test--)
{
scanf("%d %d %d %d %d %d", &x1, &y1, &r1, &x2, &y2, &r2);
d = sqrt((double)((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)));
if (r1 > r2)
{
int temp;
temp = r1;
r1 = r2;
r2 = temp;
}
if (d < r2 + r1 && d > r2 - r1)
ret = 2;
else if (r1 + r2 == d || d == r2 - r1)
ret = 1;
else
ret = 0;
if (x1 == x2 && y1 == y2)
{
if (r1 == r2)
ret = -1;
else
ret = 0;
}
printf("%d\n", ret);
}
return 0;
}
반응형