]> www.fi.muni.cz Git - aoc.git/blob - 2016/02.pl
Day 25: examining the input
[aoc.git] / 2016 / 02.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use v5.30;
5
6 my @dir = ([0, -1], [1, 0], [0, 1], [-1, 0]);
7 my $d = 0;
8
9 my ($x, $y) = (0, 0);
10
11 $_ = <>;
12 my %seen;
13 while (/([LR])(\d+)/g) {
14         if ($1 eq 'L') {
15                 $d = $#dir if --$d < 0;
16         } else {
17                 $d = 0 if ++$d > $#dir;
18         }
19         my $i = $2;
20         while ($i--) {
21                 $x += $dir[$d]->[0];
22                 $y += $dir[$d]->[1];
23                 if ($seen{$x,$y}++) {
24                         say abs($x)+abs($y);
25                         exit 0;
26                 }
27         }
28 }
29
30