236 tokens in Kotlin for part 1 by Vadzim Kapichenka
Download solution
funmain(){
dataclassVector(valx:Long,valy:Long,valz:Long)
println(
generateSequence(::readLine)
.map{it.split(",").map(String::toLong).run{Vector(get(0),get(1),get(2))}}.toList().run{
flatMapIndexed{i,a->drop(i+1).map{atoit}}
.sortedBy{(a,b)->Vector(a.x-b.x,a.y-b.y,a.z-b.z).run{x*x+y*y+z*z}}
.take(1000)
.fold(withIndex().associate{it.valuetoit.index}){circuits,(a,b)->
circuits+circuits.filterValues{it==circuits[b]}.mapValues{circuits[a]!!}
}.values.groupingBy{it}.eachCount().values.sortedDescending().take(3).reduce(Int::times)
}
)
}