#!/usr/bin/env tclsh8.6 set row 0 while {[gets stdin line] >= 0} { if {$line eq ""} continue set col 0 foreach h [split $line {}] { set grid($row,$col) $h incr col } incr row } set risk 0 for {set r 0} {$r < $row} {incr r} { for {set c 0} {$c < $col} {incr c} { set up [expr {$r-1}] set down [expr {$r+1}] set left [expr {$c-1}] set right [expr {$c+1}] set islow 1 if { ([info exists grid($up,$c)] && $grid($up,$c) <= $grid($r,$c)) || ([info exists grid($down,$c)] && $grid($down,$c) <= $grid($r,$c)) || ([info exists grid($r,$left)] && $grid($r,$left) <= $grid($r,$c)) || ([info exists grid($r,$right)] && $grid($r,$right) <= $grid($r,$c)) } { set islow 0 } if {$islow} { #puts "r=$r c=$c h=$grid($r,$c) up=$up down=$down left=$left right=$right" incr risk $grid($r,$c); incr risk } } } puts $risk