#!perl $b=++$/x11 .<>;for$i(9..99){if(($x=$b)=~s/^(.{$i}) /$1x/s){while($x=~/w/g){$_="$`W$'";1while s/w((?<=W.{10})|(?<=W.)|(?=.{9}W|W))/W/s;/W((?<= .{10})|(?<= .)|(?=.{9} | ))/s||$i=~/./+(print"$& $'\n")+last}}}
#!perl # $/ «1», «<>» # ( ). # 11 ( / # . $b = ++$/ x 11 . <>; # . for $i ( 9 .. 99 ) { # . , . . , # «x» ( , , # , ) . if ( ( $x = $b ) =~ s/^(.{$i}) /$1x/s ) { # («w»). while ( $x =~ /w/g ) { # $_, «w» «W» # ( while # $` , $' — ). $_ = "$`W$'"; # , . 1 while s/w((?<=W.{10})|(?<=W.)|(?=.{9}W|W))/W/s; # ( ) - . /W((?<= .{10})|(?<= .)|(?=.{9} | ))/s # , . # «/./» $& ( # ) $' ( , # ), . , # . || $i =~ /./ + ( print "$& $'\n" ) + last; } } }
#!perl @g=(d..n,map{/./g,''}<>);sub n{my($i,$j,$r)=@_;map{$_=1and map{$r=n($i,$j+1)+n($i,$j-1)+n($i+1,$j)+n($i-1,$j)==1if/w/;$r=1and$0="$i $j\n"if/ /}$g["$i$j"]if!$_}$s{"$i$j"};$r}map{print$0if$g[$_]eq'w'&&n(/./g)}0..99
#!perl # d .. n, # . @g = ( d .. n, map { /./g, '' } <> ); # sub n { my ( $i, $j, $r ) = @_; # %s # ( ). # %s $_ map. map { # %s # , . $_ = 1 and map { # — , # , # # (. . ). $r = n( $i, $j + 1 ) + n( $i, $j - 1 ) + n( $i + 1, $j ) + n( $i - 1, $j ) == 1 if /w/; # , # $0. $r = 1 and $0 = "$i $j\n" if / / } $g["$i$j"] if !$_ } $s{"$i$j"}; # $r } # . map { # , # . print $0 if $g[$_] eq 'w' && n(/./g) } 0 .. 99
#!/usr/bin/perl while(<>){tr/ wb\n/2133/;$str.=$_.'3'}@m=split//,('3'x12).$str;for(@m){%l=();$r=1;z($i);$o{$w[0]}=1if/1/&&$r&&(@w=%l)==2;$i++}printf"%d %d$/",$_/11,$_%11for sort keys%o;sub z{my$c=$_[0];for(qw/11 1 -11 -1/){$x=$c+$_;$n=$m[$x];$l{$x}=1if$n==2;if($n==1){z($x)if!/-/;$r=0if$i>$x}}}
#!/usr/bin/perl while (<>) { # , tr/ wb\n/2133/; # . $str .= $_ . '3'; } @m = split //, ( '3' x 12 ) . $str; # # for (@m) { %l = (); $r = 1; z($i); # . $o{ $w[0] } = 1 # , if /1/ # ( ), && $r # , && ( @w = %l ) == 2; # . $i++; } printf "%d %d$/", $_ / 11, $_ % 11 # # 11 for sort {$a > $b} keys %o; # . sub z { my $c = $_[0]; for (qw/11 1 -11 -1/) { # $x = $c + $_; # , $n = $m[$x]; # . $l{$x} = 1 if $n == 2; # , — if ( $n == 1 ) { # — , z($x) if !/-/; # . $r = 0 if $i > $x # , # # ( ) } } }
#!perl $s='b'x12; while(<>){s/\n/bb/;s/ /0/g;$s.=$_;}$s.='b'x10;@q=(-1,+1,11,-11);@a=split//,$s; for(@a){++$i;if(!$a[$i]){$res=0;$p=[];for(@q){$c=$_+$i;if($a[$c]eq'w'){$p=[@a];$p->[$i]='b';$res+=b($p,$c);}}if($res){printf"%d %d\n",$i/11,$i%11;}}} sub b{my($e,$w)=@_;$r=1;for(@q){$z=$_+$w;return 0 if!$r||!$e->[$z];if($e->[$z]eq'w'){$t=[@$e];$t->[$w]='b';$r&=b($t,$z)}}return$r}
#!perl # , . # 0, . $s = 'b' x 12; while (<>) { s/\n/bb/; s/ /0/g; $s .= $_; } $s .= 'b' x 10; @q = ( -1, +1, 11, -11 ); # . @a = split //, $s; # . for (@a) { # . ++$i; if ( !$a[$i] ) { # . $res = 0; $p = []; for (@q) { # . $c = $_ + $i; if ( $a[$c] eq 'w' ) { # . $p = [@a]; # $p->[$i] = 'b'; # . $res += b( $p, $c ); # «». } } if ($res) { # , printf "%d %d\n", $i / 11, $i % 11; # . } } } sub b { my ( $e, $w ) = @_; $r = 1; for (@q) { # . . $z = $_ + $w; return 0 if !$r || !$e->[$z]; if ( $e->[$z] eq 'w' ) { $t = [@$e]; $t->[$w] = 'b'; $r &= b( $t, $z ) } } return $r; }
#!perl push@t,split//,'b'x11;for(<>){chomp;push@t,split//,"b$_"."b"}push@t,@t[0..10];for(;$r++<11;){for($c=0;$c++<11;){$i=$r*11+$c;if($t[$i]eq' '){for($i-11,$i+1,$i+11,$i-1){next unless$t[$_]eq'w';$t[$i]='b';if(f($_)>7){print"$r $c\n";last}$t[$i]=' '}}}}sub f{my($r,$e,$k)=@_;$d{$r}?return$e||$dr:($d{$r}=2);for($r-11,$r+1,$r+11,$r-1){$k+=1+f($_,1)if$t[$_]eq'w';$k+=2if$t[$_]eq'b'}$e?$k>7?$e:0:$k}
#!perl # , push @t, split //, 'b' x 11; for (<>) { chomp; push @t, split //, "b$_" . "b" } push @t, @t[ 0 .. 10 ]; # for ( ; $r++ < 11 ; ) { for ( $c = 0 ; $c++ < 11 ; ) { # $i = $r * 11 + $c; # - , if ( $t[$i] eq ' ' ) { for ( $i - 11, $i + 1, $i + 11, $i - 1 ) { next unless $t[$_] eq 'w'; $t[$i] = 'b'; if ( f($_) > 7 ) { # 7 (. . 8) print "$r $c\n"; # last } $t[$i] = ' ' } } } } sub f { my ( $r, $e, $k ) = @_; $d{$r} ? return $e || $dr : ( $d{$r} = 2 ); for ( $r - 11, $r + 1, $r + 11, $r - 1 ) { # $k += 1 + f( $_, 1 ) if $t[$_] eq 'w'; # - 1 $k += 2 if $t[$_] eq 'b'; # 2 } $e ? $k > 7 ? $e : 0 : $k; }
#!perl #!perl -ln sub M{$k=pop;my%t;$l[$k]=[grep!$t{$_}++,@{$l[$k]},@_]}sub S{($m,$n)=@_;($M,$N)=sort$$m,$$n;M@{delete$l[$N]},$M if$N!=($$m=$$n=$M)}$i=1;for(split//){$b[$c=$..$i]=/w/?++$e:$_;$x=($R=$.-1).$i;$y=$..($C=$i-1);/w/&&do{$b[$_]>0&&S\$b[$c],\$b[$_]for$x,$y;M$b[$x]eq$"?"$R $i":(),$b[$y]eq$"?"$. $C":(),$b[$c]};/ /&&map{$b[$_]>0&&M"$. $i",$b[$_]}$x,$y;$i++}}{print for sort grep!$s{$_}++,map@$_-1?():@$_,@l
#!perl -ln sub M { $k = pop; my %t; # «». $l[$k] = [ grep !$t{$_}++, @{ $l[$k] }, @_ ] } sub S { ( $m, $n ) = @_; ( $M, $N ) = sort $$m, $$n; # # «» M @{ delete $l[$N] }, $M if $N != ( $$m = $$n = $M ); } $i = 1; # . for ( split // ) { $b[ $c = $. . $i ] = # $. . /w/ ? ++$e : $_; # # . $x = ( $R = $. - 1 ) . $i; # . $y = $. . ( $C = $i - 1 ); # . # — /w/ && do { # $b[$_] > 0 && S \$b[$c], \$b[$_] for $x, $y; # «». M $b[$x] eq $" ? "$R $i" : (), $b[$y] eq $" ? "$. $C" : (), $b[$c]; }; # — «» . / / && map { $b[$_] > 0 && M "$. $i", $b[$_] } $x, $y; $i++; } }{ # . print for sort grep !$s{$_}++, map @$_ - 1 ? () : @$_, @l
...wb.... ...1b.... ...b..... ...b..... ......... ......... ..b...... would ..b...... .bwb..... become .b2b..... bwwwb.... b222b.... ......... ......... ......... ......... .......bw .......b6
2 345
..b...... .b2
..b...... .b2...... b3
..b...... .b2b..... b34
..b...... .b2b..... b32
..b...... .b2b..... b22
..b...... .b2b..... b225
..b...... .b2b..... b222
#!perl my$X=121;my$m;sub z{my($s,$x,$m)=shift;while($x<$X){$m+=f($x++,$s);}$m;}sub f{my($n,$t,$d)=@_;my$c=substr($t,$n,1);return 0 if $c eq ' '||!$d&& $c ne 'w';return 1 if $c eq 'b';substr($t,$n,1)='b';(!(($n+1)%11)||f($n+1,$t,1))*(!(($n-1)%10)||f($n-1,$t,1))*f($n+11,$t,1)*f($n-11,$t,1);}my$y='b'x11;while(<>){$y.="b$_";}$y=~s/\n/b/g;$y.='b'x11;$d=z($y);my$i=0;while($i<$X){my$ch=substr($y,$i,1);if($ch eq ' '){$b=$y;substr($b,$i,1)='b';if(z($b)>$d){my$y=int($i/11);my$x=$i-($y*11);print"$y $x\n";}}$i++;}
#!perl my $X = 121; # . my $m; # «» ( ) . sub z { my ( $s, $x, $m ) = shift; # . while ( $x < $X ) { $m += f( $x++, $s ); } $m; } # «» sub f { my ( $n, $t, $d ) = @_; my $c = substr( $t, $n, 1 ); # . # 0 # . return 0 if $c eq ' ' || !$d && $c ne 'w'; # 1, . return 1 if $c eq 'b'; # . substr( $t, $n, 1 ) = 'b'; # . ( !( ( $n + 1 ) % 11 ) || f( $n + 1, $t, 1 ) ) * ( !( ( $n - 1 ) % 10 ) || f( $n - 1, $t, 1 ) ) * f( $n + 11, $t, 1 ) * f( $n - 11, $t, 1 ); # 0, # . } # , . my $y = 'b' x 11; while (<>) { $y .= "b$_"; } $y =~ s/\n/b/g; $y .= 'b' x 11; $d = z($y); my $i = 0; while ( $i < $X ) { # . my $ch = substr( $y, $i, 1 ); # . if ( $ch eq ' ' ) { # , $b = $y; # , substr( $b, $i, 1 ) = 'b'; # . # «» if ( z($b) > $d ) { # . my $y = int( $i / 11 ); my $x = $i - ( $y * 11 ); print "$y $x\n"; } } $i++; }
#!perl eval{ $a->[10]=$a->[0]=[('b')x11]; while(<STDIN>){chomp;@{$a->[++$i]}=('b',(split''),'b');last if $i>=9} sub f { my($x,$y)=@_; return $o[$j] if $n->[$x][$y]; return $o[$j]||2 if $a->[$x][$y]eq'b'; return 1 if $a->[$x][$y]ne'w'; $n->[$x][$y]=$j; $o[$j]=f($_,$y)for($x-1,$x+1); $o[$j]=f($x,$_)for($y-1,$y+1); return $o[$j]; } sub p { for $x(0..10){for $y(0..10){ f($x,$y,$j++) if $a->[$x][$y]eq'w'&&!$n->[$x][$y]; }} return grep{$_==2}@o; } my $t=p; for $x(0..10){for $y(0..10){ next if $a->[$x][$y]ne' '; $a->[$x][$y]='b'; @o=();$n=[]; print"$x $y\n" if $t<p; $a->[$x][$y]=' '; }} }
#!perl eval { # . $a->[10] = $a->[0] = [ ('b') x 11 ]; # , . while (<STDIN>) { chomp; @{ $a->[ ++$i ] } = ( 'b', ( split '' ), 'b' ); last if $i >= 9; } # . sub f { my ( $x, $y ) = @_; # , . return $o[$j] if $n->[$x][$y]; # 2, . return $o[$j] || 2 if $a->[$x][$y] eq 'b'; # , (. . ). return 1 if $a->[$x][$y] ne 'w'; # , , $n->[$x][$y] = $j; # . $o[$j] = f( $_, $y ) for ( $x - 1, $x + 1 ); $o[$j] = f( $x, $_ ) for ( $y - 1, $y + 1 ); # $o[$j] 1 # . return $o[$j]; } # . sub p { # . for $x ( 0 .. 10 ) { for $y ( 0 .. 10 ) { # , # . f( $x, $y, $j++ ) if $a->[$x][$y] eq 'w' && !$n->[$x][$y]; } } # # (. . ). return grep { $_ == 2 } @o; } my $t = p; # . for $x ( 0 .. 10 ) { # . for $y ( 0 .. 10 ) { next if $a->[$x][$y] ne ' '; # , . $a->[$x][$y] = 'b'; # . @o = (); # . $n = []; # . print "$x $y\n" if $t < p; # , # # (. . ). $a->[$x][$y] = ' '; # . } } }
#!perl -ln0aF// sub c{my$s=pop;$s=~/-|9/||$g[$s]eq'b'||$g[$s]=~/w/*!grep{$g[$s]='b';!c($s+$_)}1,-1,10,-10}map{@g=@F;$g[$_]='b';/\d$/,print$`+1,$",$&+1if$F[$_]=~/ /*grep{$g[$_]eq'w'&&c$_}0..$#g}0..$#F
#!perl -ln0aF// # : # -n «while () { … }» ; # -0 , ; # -a , @F; # -F// -a ; # -l print. # «» sub c { my $s = pop; # , # ( ), $s =~ /-|9/ # , || $g[$s] eq 'b' # . || $g[$s] =~ /w/ * !grep { $g[$s] = 'b'; !c( $s + $_ ) } 1, -1, 10, -10; } # . map { # . @g = @F; # . $g[$_] = 'b'; # , , # . /\d$/, print $`+ 1, $", $& + 1 if $F[$_] =~ / / * grep { $g[$_] eq 'w' && c $_} 0 .. $#g } 0 .. $#F
#!perl @g=(d..n,map{/./g,''}<>);sub n{my($i,$r)=@_;map{do{$_=1and$r=n($i+1)+n($i-1)+n($i+10)+n($i-10)==1if/w/;$_=$r=1and$0=$i if/ /}if/\D/}$g[$i];$r}map{printf"%s %s\n",$0=~/./g if$g[$_]eq'w'&&n($_)}0..99
#!perl @g = ( d .. n, map { /./g, '' } <> ); # . sub n { my ( $i, $r ) = @_; # , # . map { do { $_ = 1 and $r = n( $i + 1 ) + n( $i - 1 ) + n( $i + 10 ) + n( $i - 10 ) == 1 if /w/; $_ = $r = 1 and $0 = $i if / / } if /\D/ } $g[$i]; $r } map { # printf "%s %s\n", $0 =~ /./g if $g[$_] eq 'w' && n($_) } 0 .. 99
/\d$/
was replaced by /.$/
. #!perl -ln0aF// sub c{my$s=pop;$s=~/-|9/||$g[$s]eq'b'||$g[$s]=~/w/*!grep{$g[$s]='b';!c($s+$_)}1,-1,10,-10}map{@g=@F;$g[$_]='b';/.$/,print$`+1,$",$&+1if$F[$_]=~/ /*grep{$g[$_]eq'w'&&c$_}0..89}0..89
#!perl -ln0aF// # : # -n «while () { … }» ; # -0 , ; # -a , @F; # -F// -a ; # -l print. # «» sub c { my $s = pop; # , # ( ), $s =~ /-|9/ # , || $g[$s] eq 'b' # . || $g[$s] =~ /w/ * !grep { $g[$s] = 'b'; !c( $s + $_ ) } 1, -1, 10, -10; } # . map { # . @g = @F; # . $g[$_] = 'b'; # , , # . /.$/, print $`+ 1, $", $& + 1 if $F[$_] =~ / / * grep { $g[$_] eq 'w' && c $_} 0 .. 89 } 0 .. 89
#!perl -ln0 map{$i=$-[0]+11;{map{1while s/w((?<=W.{10})|(?<=W.)|(?=.{9}W|W))/W/s;/W((?<= .{10})|(?<= .)|(?=.{9} | ))/s||$i=~/./+print("$& $'")+last}"$`W$'"while/w/g}}"$`x$'"while/ /g
#!perl -ln0 # , . map { $i = $-[0] + 11; # . { map { 1 while s/w((?<=W.{10})|(?<=W.)|(?=.{9}W|W))/W/s; /W((?<= .{10})|(?<= .)|(?=.{9} | ))/s || $i =~ /./ + print("$& $'") + last } "$`W$'" while /w/g } } "$`x$'" while / /g
#!perl -ln0 map{1while$,=s=$,w=g=s?'(g|(?=.g|..{9}g)|g.{9})\K':/g/>/$, /s&&map{y!.! !;print;redo}/x/+"@+E-1"or y&g&b&}"$`x$'"while/ /g
#!perl -ln0 # «x». map { 1 while $, = # g. # ( $, , # .) s=$,w=g=s # . ? '(g|(?=.g|..{9}g)|g.{9})\K' # , , # . : /g/ > /$, /s && map { # @+ /x/, # . . . # (/x/) , # -1 (E-1). «.» « », # . y!.! !; print; redo } /x/ + "@+E-1" # — # . or y&g&b& } "$`x$'" while / /g
Source: https://habr.com/ru/post/191704/
All Articles