]> www.fi.muni.cz Git - aoc.git/blob - 2019/43.pl
Day 25: examining the input
[aoc.git] / 2019 / 43.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my @deck = (0 .. 10006);
6 # my @deck = (0 .. 9);
7
8 while (<>) {
9         if (/new stack/) {
10                 @deck = reverse @deck;
11         } elsif (/increment (\d+)/) {
12                 my @nd;
13                 my $p = 0;
14                 for (@deck) {
15                         $nd[$p] = $_;
16                         $p += $1;
17                         $p %= @deck;
18                 }
19                 @deck = @nd;
20         } elsif (/cut (\d+)/) {
21                 push @deck, splice @deck, 0, $1;
22         } elsif (/cut (-\d+)/) {
23                 unshift @deck, splice @deck, $1;
24         }
25         say join(' ', @deck);
26 }
27
28 my $p = 0;
29 for (@deck) {
30         say "pos $p" if $_ == 2019;
31         $p++;
32 }