5 my ($x, $y) = (20_000_000, 20_000_000);
16 my ($len, $dir) = /\(\#(\w+)(\w)\)/;
18 $map{$y}{$x} |= (1 << $dir);
19 $x += $len * $dir{$dir}->[0];
20 $y += $len * $dir{$dir}->[1];
21 $map{$y}{$x} |= (1 << ($dir ^ 2));
22 say "at $x,$y dir $dir len $len";
31 if (defined $prev && $in) {
32 $sum += $pt - $prev + 1;
43 for my $y1 (sort { $a <=> $b } keys %map) {
51 my $psum = sum_int(@pts);
52 $sum += ($y1-$y0-1) * $psum;
55 for my $x1 (sort { $a <=> $b } (@pts, keys %{ $map{$y1} })) {
56 next if $x0 && $x1 == $x0;
57 my $d = $map{$y1}{$x1};
58 my $d0 = $map{$y1}{$x0} if defined $x0;
59 say " at $x1,$y1 ", $d // "|";
61 if !defined $d || ($d & 2);
66 if (($d0 == 9 && $d == 6) || ($d0 == 3 && $d == 12)) {
71 if (($d0 == 9 && $d == 12) || ($d0 == 3 && $d == 6)) {
78 say " int $x0 .. $x1";
82 $rowsum += $x1 - $x0 + 1;
88 say " tx=@tx sum ", sum_int(@tx);
89 say " nx=@nx sum ", sum_int(@nx);