package main

import "fmt"

type Bots map[Coordinate][]int

func NewBots(input []string) Bots {
	m := make(Bots)
	for _, data := range input {
		var r int
		var c Coordinate
		_, err := fmt.Sscanf(data, "pos=<%d,%d,%d>, r=%d", &c.X, &c.Y, &c.Z, &r)
		if err != nil {
			panic(err)
		}
		m[c] = append(m[c], r)
	}
	return m
}

func (m Bots) HaveInRange(pos Coordinate) int {
	var sum int
	for c, rs := range m {
		for _, r := range rs {
			if pos.Distance(c) <= r {
				sum++
			}
		}
	}
	return sum
}