dev/algorithm
BOJ / 1002번 / 터렛 [Golang]
crscnt
2020. 5. 16. 21:00
문제
1002번: 터렛
각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.
www.acmicpc.net
풀이
package main
import (
"bufio"
"fmt"
"math"
"os"
)
func main() {
var t int
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
fmt.Fscanln(reader, &t)
defer writer.Flush()
for i := 0; i < t; i++ {
var x1, y1, r1, x2, y2, r2 int
fmt.Fscanln(reader, &x1, &y1, &r1, &x2, &y2, &r2)
var distanceX = x1 - x2
var distanceY = y1 - y2
var addR = math.Pow(float64(r1+r2), 2)
var subR = math.Pow(float64(r1-r2), 2)
var d = math.Pow(float64(distanceX), 2) + math.Pow(float64(distanceY), 2)
if d < addR && d > subR {
fmt.Fprintln(writer, 2)
} else if d == addR || d == subR && d != 0 {
fmt.Fprintln(writer, 1)
} else if d < subR || d > addR {
fmt.Fprintln(writer, 0)
} else if d == 0 && r1 == r2 {
fmt.Fprintln(writer, -1)
}
}
}
728x90