parent
9165dd7d86
commit
7178a11eee
|
@ -63,6 +63,10 @@ proc pulse {init {debug 0}} {
|
||||||
set pulses {}
|
set pulses {}
|
||||||
foreach {from n value} $copy {
|
foreach {from n value} $copy {
|
||||||
incr count($value)
|
incr count($value)
|
||||||
|
if {$n eq "rx" && $value == 0} {
|
||||||
|
global solved
|
||||||
|
set solved 1
|
||||||
|
}
|
||||||
switch $type($n) {
|
switch $type($n) {
|
||||||
flip {
|
flip {
|
||||||
if {$value == 0} {
|
if {$value == 0} {
|
||||||
|
@ -106,11 +110,29 @@ proc solve input {
|
||||||
set solved 0
|
set solved 0
|
||||||
for {set i 1} {$i <= 1000} {incr i} {
|
for {set i 1} {$i <= 1000} {incr i} {
|
||||||
pulse broadcaster
|
pulse broadcaster
|
||||||
|
if {$solved} {
|
||||||
|
puts "rx $i"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
puts "$count(0)"
|
puts "$count(0)"
|
||||||
puts $count(1)
|
puts $count(1)
|
||||||
puts [expr {$count(0) * $count(1)}]
|
puts [expr {$count(0) * $count(1)}]
|
||||||
|
|
||||||
|
global type
|
||||||
|
if {![info exists type(rx)]} return
|
||||||
|
|
||||||
|
while {!$solved} {
|
||||||
|
pulse broadcaster
|
||||||
|
incr i
|
||||||
|
if {$solved} {
|
||||||
|
puts "rx $i"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if {$i % 1000 == 0} {
|
||||||
|
puts "\[$i\]"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
solve stdin
|
solve stdin
|
||||||
|
|
Loading…
Reference in New Issue