day 11 part 1
parent
55158903e6
commit
b7062a7801
|
@ -0,0 +1,140 @@
|
|||
.#...........#.........................................................................#...............#...........#........................
|
||||
.......................#....................................................................................................................
|
||||
...............................#...........#.................#.............................#.............................................#..
|
||||
......#............................................#........................................................................................
|
||||
......................................................................#.....#.....................#.........................................
|
||||
.................#.......#.......................................#................#.....#.....................#.............................
|
||||
.........................................#.................#................................................................................
|
||||
................................#.............................................................#..........#..................................
|
||||
#.......................................................................#..............................................#.................#..
|
||||
..........#....................................#......................................#............................................#........
|
||||
................#....................................#........#.............................................................................
|
||||
......#........................................................................#............................................................
|
||||
......................#..............#..............................................................#..........#.....#......................
|
||||
..................................................#.......................#..................................................#..........#...
|
||||
............................#...............................................................................................................
|
||||
........#...................................................................................................................................
|
||||
..................#.......................#................................................................#................................
|
||||
.............................................................#........#.....................................................................
|
||||
..............................#.......#......................................#.............#........................#.......................
|
||||
.#............................................................................................................#...........................#.
|
||||
...................................................................................................#....................#...................
|
||||
....................#......................#.............#.....#..................................................................#.........
|
||||
.................................................................................................................#..........................
|
||||
............................................................................................................................................
|
||||
....................................................................#.....................#.................................................
|
||||
.................................#..............................................#..............#............#.............#.................
|
||||
...........................#............................................#...........................................#.......................
|
||||
......................#.........................#...........................................................................................
|
||||
.......................................#....................................#...................................#...........................
|
||||
.....#..........#.........................................#...............................................................................#.
|
||||
#..........#......................#...................................................#.......#.....#.......................................
|
||||
.........................#..................................................................................................................
|
||||
....................#..............................#.............#.........................................#.......#........#...............
|
||||
...........................................#........................................................................................#.......
|
||||
...........................................................#....................#...........................................................
|
||||
..........#....................................................................................................#............................
|
||||
...............#................................#..........................#..............................................................#.
|
||||
..#.................................#.................................................................#.......................#.............
|
||||
.....................#......#...............#........................#................................................#.....................
|
||||
..............................................................................................#....................................#........
|
||||
................................#.......#...................................................................................................
|
||||
..........#................................................#...................#.....#..............#..........#..........#.................
|
||||
.........................#..................................................................................................................
|
||||
..................#...............................#...........................................................................#.............
|
||||
.........................................................................#............................................#.....................
|
||||
........#.....#..............................................................................#.........#..................................#.
|
||||
.#...............................#......#............#.............................................................................#........
|
||||
....................................................................................#.............#...............#........#................
|
||||
...........................#................................................................................................................
|
||||
......................#..................................#..............#................................#.............#................#...
|
||||
...............................................................#..............#.............................................................
|
||||
..................................#........................................................#........#.......................................
|
||||
......#.................................#.......#....................#...............................................................#......
|
||||
.................#............#..............................................................................#.............................#
|
||||
............................................................................................................................................
|
||||
..#.....................#.............................................................................#.....................................
|
||||
.......................................................................................#..............................#.....................
|
||||
...............................................................................#.............#..............................................
|
||||
....................#.....................#...............................................................#.................................
|
||||
..........#........................#............#...................#.............................................#...............#.........
|
||||
............................#.............................#..........................#......................................................
|
||||
...........................................................................................#................................................
|
||||
.................................................................#.................................#.........................#........#.....
|
||||
.................#........................................................#..................................#..............................
|
||||
......................................#......................#..............................................................................
|
||||
.............#...........#...............................................................................#..........#.......................
|
||||
.................................#...........#...........................................................................#..............#...
|
||||
.......#............................................#.....#....................#..............#.....#.......................................
|
||||
...................#...........................................#................................................#...........................
|
||||
........................................................................................#...................................................
|
||||
...#....................#.....#............#.........................................................................................#......
|
||||
...............#.............................................................#..................#........#................#.................
|
||||
.........#.....................................#............................................................................................
|
||||
................................................................................................................................#...........
|
||||
.....................#.............#.........................................................................#..............................
|
||||
.....#...............................................................................................................#..............#......#
|
||||
...........#.......................................#.....#.................#.................#..............................................
|
||||
............................................................................................................................................
|
||||
.#.......................................#..........................................#................#......................................
|
||||
......................#.............#.................#.......................#...........#.............................#...................
|
||||
...............#.............#................................#......#.......................................................#..............
|
||||
............................................................................................................................................
|
||||
...#............................................................................................#....................#......................
|
||||
..........#.....................#.............................................................................#.............................
|
||||
...........................#...............................................................................................#...............#
|
||||
.....................#......................................#.......#......#........#..................#...........................#........
|
||||
.....#...............................#............#.........................................................................................
|
||||
............................................................................................................................................
|
||||
.........................................................#........................................................#.........................
|
||||
#..............................#..........#..............................................................................#................#.
|
||||
....................#..............................................#.......................#.........#......................................
|
||||
............................................................................................................................................
|
||||
...........#.......................................#.............................................................................#..........
|
||||
...#......................#...............................................#......................#..........................................
|
||||
..................#.........................................................................................................................
|
||||
...........................................................#........#...........#.....#......#........................#.................#...
|
||||
........#...................................................................................................................................
|
||||
....................................................................................................#......#................................
|
||||
................................#...........#....................#.....#...................................................#........#.......
|
||||
........................#............#......................................#.............#.................................................
|
||||
...................#............................................................................................#...........................
|
||||
#................................................................................................................................#..........
|
||||
..............#.............................................#...............................................................................
|
||||
..............................#...............................................#.................#......................................#....
|
||||
....#....................#......................................#...................#...............................#.......#...............
|
||||
........................................#..........#........................................#................#..............................
|
||||
............................................................................................................................................
|
||||
............................................................................................................................................
|
||||
........................................................................................................................................#...
|
||||
...........................................................#..................#.................#.................#.........................
|
||||
.......#........................................................#................................................................#..........
|
||||
..........................#......#......#..................................................................................#................
|
||||
...............................................#.....#.................#....................................................................
|
||||
......................................................................................................#.....................................
|
||||
................#....................#.....................................................................#........#.......................
|
||||
..............................................................................................................................#.............
|
||||
...........................................#.............................................................................................#..
|
||||
....#........................#..............................#.............#................#................................................
|
||||
......................#..........................................................................................#......#...................
|
||||
....................................................#................................#.........#............................................
|
||||
..........................#.......................................#.........................................................................
|
||||
.................#........................#.....#........................................................#..................................
|
||||
.#.........................................................#............#....................................................#..............
|
||||
..........#..................#.....#..................................................................................................#.....
|
||||
.................................................................................#..........................................................
|
||||
.....................................................#....................................#.........#...........#.....#.....................
|
||||
.............................................#.....................#.......................................#.......................#........
|
||||
................................#...........................................................................................................
|
||||
......#........................................................#..............................#.............................................
|
||||
............#......................................#.....#............................#........................................#............
|
||||
............................................................................#...............................................................
|
||||
.......................................#...............................#...................#..............................#...........#.....
|
||||
.......................#..............................#..........................#..............................#...........................
|
||||
.................................................................#...................................#......................................
|
||||
......................................................................................................................#...................#.
|
||||
.................#..........................................................................................................................
|
||||
.........#......................#.....#...........#.......................................................#.................................
|
||||
...........................................#.................#................#.....................................................#.......
|
||||
..#...............................................................#.........................................................................
|
||||
.....................#......#......#.............................................................#............#...........#.................
|
|
@ -0,0 +1,10 @@
|
|||
...#......
|
||||
.......#..
|
||||
#.........
|
||||
..........
|
||||
......#...
|
||||
.#........
|
||||
.........#
|
||||
..........
|
||||
.......#..
|
||||
#...#.....
|
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/env tclsh
|
||||
|
||||
source ../prelude.tcl
|
||||
set input stdin
|
||||
set map [split [string trim [read $input]] "\n"]
|
||||
puts $map
|
||||
|
||||
|
||||
proc empty {row} { return [regexp {^\.+$} $row] }
|
||||
|
||||
set map' {}
|
||||
foreach row $map {
|
||||
if {[empty $row]} {
|
||||
lappend map' "${row}"
|
||||
}
|
||||
lappend map' $row
|
||||
}
|
||||
set map ${map'}
|
||||
|
||||
puts $map
|
||||
|
||||
|
||||
proc column {i} {
|
||||
global map
|
||||
set c {}
|
||||
foreach row $map {
|
||||
lappend c [string index $row $i]
|
||||
}
|
||||
return [join $c ""]
|
||||
}
|
||||
|
||||
|
||||
set map' {}
|
||||
set W [string length [lindex $map 0]]
|
||||
for {set i 0} {$i < $W} {incr i} {
|
||||
set col [column $i]
|
||||
if {[empty $col]} {
|
||||
lappend map' $col
|
||||
}
|
||||
lappend map' $col
|
||||
}
|
||||
set map ${map'}
|
||||
puts [join $map "\n"]
|
||||
|
||||
set points {}
|
||||
|
||||
for {set x 0} {$x < [llength $map]} {incr x} {
|
||||
set col [lindex $map $x]
|
||||
for {set y 0} {$y < [string length $col]} {incr y} {
|
||||
if {[string index $col $y] eq "#"} {
|
||||
lappend points $x $y
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
puts $points
|
||||
|
||||
proc dist {x y u v} {
|
||||
return [expr {abs($x-$u) + abs($y-$v)}]
|
||||
}
|
||||
|
||||
set mins {}
|
||||
foreach {x y} $points {
|
||||
#set d 100000
|
||||
foreach {u v} $points {
|
||||
if {$u > $x || ($u == $x && $v > $y)} {
|
||||
#set d [min $d [dist $x $y $u $v]]
|
||||
lappend mins [dist $x $y $u $v]
|
||||
}
|
||||
}
|
||||
#lappend mins $d
|
||||
}
|
||||
puts $mins
|
||||
puts [ladd $mins]
|
Loading…
Reference in New Issue