internal int Distance(Nanobot other) { int dx = this.x - other.x; int dy = this.y - other.y; int dz = this.z - other.z; dx = dx > 0 ? dx : -dx; dy = dy > 0 ? dy : -dy; dz = dz > 0 ? dz : -dz; return(dx + dy + dz); }
private static int A(string[] input) { var bots = input.Select(i => Nanobot.fromString(i)).ToArray(); Nanobot best = bots[0]; foreach (var bot in bots) { if (bot.r > best.r) { best = bot; } } return(bots.Count(b => b.Distance(best) <= best.r)); }