$a = 8;
$G{ int( ++$a / 9 ) . $a % 9 + 1 } = $_ for split //, <>;
@A = 1 .. 9;
sub c {
int( ( $_[0] - 1 ) / 3 ) * 3;
}
sub G {
for $y (@A) {
for $x (@A) {
$t = $G{ my $c = $y . $x } && next;
$t .= $G{ $_ . $x } . $G{ $y . $_ } for @A;
for $f ( 1 .. 3 ) { $t .= $G{ c($y) + $f . c($x) + $_ } for 1 .. 3 }
G( $G{$c} = $_ ) for grep $t !~ m/$_/, @A;
return $G{$c} = 0;
}
}
die map { $G{$_} || "\n" } 9 .. 100;
}
G