]> www.fi.muni.cz Git - aoc.git/blobdiff - 2019/43.pl
Rest of 2019
[aoc.git] / 2019 / 43.pl
diff --git a/2019/43.pl b/2019/43.pl
new file mode 100755 (executable)
index 0000000..be352c5
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @deck = (0 .. 10006);
+# my @deck = (0 .. 9);
+
+while (<>) {
+       if (/new stack/) {
+               @deck = reverse @deck;
+       } elsif (/increment (\d+)/) {
+               my @nd;
+               my $p = 0;
+               for (@deck) {
+                       $nd[$p] = $_;
+                       $p += $1;
+                       $p %= @deck;
+               }
+               @deck = @nd;
+       } elsif (/cut (\d+)/) {
+               push @deck, splice @deck, 0, $1;
+       } elsif (/cut (-\d+)/) {
+               unshift @deck, splice @deck, $1;
+       }
+       say join(' ', @deck);
+}
+
+my $p = 0;
+for (@deck) {
+       say "pos $p" if $_ == 2019;
+       $p++;
+}