sub b { $M = scalar keys %t; $m = $M *= $M; foreach ( keys %t ) { $r = c( $_ ); ($m,$n) = ($r, $_) if ($r < $m ); } $n; } sub c { @s=@_; %b = ( $s[0] => $b=$sum=0 ); while ( @s > 0 ) { $b ++; @s = grep { ! exists( $b{$_} ) } map { @{$t{$_}} } @s; @b{ @s } = ($b) x scalar(@s); $sum += $b * scalar(@s); return $M if $sum > $m } $sum; } #### sub b{$M=$m=@_*@_;for(keys %t){$r=c($_);($m,$n)=($r,$_)if($r<$m)}$n}sub c{%b=($_[0]=>$b=$sum=1);while(@_){$b++;@_=grep{!$b{$_}}map{@{$t{$_}}}@_;@b{@_}=($b)x@_;$sum+=$b*@_;return$M if$sum>$m}$sum} #### sub b{$M=$m=@_*@_;for(keys %t){$r=c($_);($m,$n)=($r,$_)if($r<$m)}$n}sub c{%b=($_[0]=>$b=$sum=1);while(@_){$b++;@_=grep{!$b{$_}}map{@{$t{$_}}}@_;@b{@_}=($b)x@_;$sum+=$b*@_}$sum}