summaryrefslogblamecommitdiffstats
path: root/2024/tcl/01.tcl
blob: 2248e1147052a64209612324e5b90a4082c95cbf (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                                                                     
                     























                                                               
#!/bin/env tclsh

source lib.tcl
setup 1

puts {Part 1: Find the sum of distances between pairs of numbers with the same ordinal in each list.}

while {[gets $input line] != -1} {
  lassign $line ln rn

  lappend left_nums $ln
  lappend right_nums $rn

  dict incr right_num_counts $rn
}

close $input

set left_nums [lsort -integer $left_nums]
set right_nums [lsort -integer $right_nums]

foreach ln $left_nums rn $right_nums {
  incr total1 [expr {abs($ln - $rn)}]

  if [dict exists $right_num_counts $ln] {
    incr total2 [expr {$ln * [dict get $right_num_counts $ln]}]
  }
}

puts "Sum of distances: $total1"
puts ""
puts {Part 2: Find the "Similarity Score" of the lists.}
puts "Similarity Score: $total2"