4 use experimental 'multidimensional', 'for_list', 'builtin';
17 my @map = map { [ split // ] } split /\n/, $_;
21 for my $r1 (1 .. $#{ $map[0] }) {
23 for my $x (0 .. $r1) {
26 next if $x1 > $#{ $map[0] };
27 for my $y (0 .. $#map) {
28 next COL if $map[$y][$x] ne $map[$y][$x1];
36 for my $r1 (1 .. $#map) {
38 for my $y (0 .. $r1) {
42 for my $x (0 .. $#{ $map[0] }) {
43 next ROW if $map[$y][$x] ne $map[$y1][$x];
52 for my $sx (0 .. $#{ $map[0] }) {
53 for my $sy (0 .. $#map) {
54 my $old = $map[$sy][$sx];
55 $map[$sy][$sx] = ($old eq '.') ? '#' : '.';
56 say "######################### $sx,$sy $old $map[$sy][$sx]";
57 say "============ $#{ $map[0] } x $#map ==========";
59 for my $r1 (1 .. $#{ $map[0] }) {
62 for my $x (0 .. $r1) {
65 next if $x1 > $#{ $map[0] };
66 for my $y (0 .. $#map) {
67 next COL if $map[$y][$x] ne $map[$y][$x1];
75 for my $r1 (1 .. $#map) {
76 next if $n == 100*$r1;
78 for my $y (0 .. $r1) {
82 for my $x (0 .. $#{ $map[0] }) {
83 next ROW if $map[$y][$x] ne $map[$y1][$x];
90 $map[$sy][$sx] = $old;