]> www.fi.muni.cz Git - aoc.git/blob - 2018/12.pl
Day 25: examining the input
[aoc.git] / 2018 / 12.pl
1 #!/usr/bin/perl -w
2
3 use v5.30;
4 use strict;
5
6 my @pts = map { [ /(\d+)/g ] } <>;
7
8 my ($minx, $miny, $maxx, $maxy);
9 for my $pt (@pts) {
10         $minx = $pt->[0] if !defined $minx || $minx > $pt->[0];
11         $maxx = $pt->[0] if !defined $maxx || $maxx < $pt->[0];
12         $miny = $pt->[1] if !defined $miny || $miny > $pt->[1];
13         $maxy = $pt->[1] if !defined $maxy || $maxy < $pt->[1];
14 }
15
16 my $count;
17 for my $x ($minx .. $maxx) {
18 for my $y ($miny .. $maxy) {
19         my $dist;
20         for my $i (0 .. $#pts) {
21                 my $pt = $pts[$i];
22                 $dist += abs($x-$pt->[0]) + abs($y-$pt->[1]);
23         }
24         $count++ if $dist < 10000;
25 } }
26
27 say $count;