]> www.fi.muni.cz Git - aoc.git/blob - 2017/31.pl
Day 25: examining the input
[aoc.git] / 2017 / 31.pl
1 #!/usr/bin/perl
2
3 use v5.30;
4 use strict;
5
6 my $row = join('', 'a' .. 'p');
7 # my $row = join('', 'a' .. 'e');
8
9 for my $move (split /,/, <>) {
10         chomp $move;
11         if ($move =~ /s(\d+)/) {
12                 $row =~ s/(.*)(.{$1})/\2\1/;
13         } elsif ($move =~ /x(\d+)\/(\d+)/) {
14                 my ($a, $b) = (substr($row, $1, 1), substr($row, $2, 1));
15                 substr($row, $1, 1) = $b;
16                 substr($row, $2, 1) = $a;
17         } elsif ($move =~ /p(\w)\/(\w)/) {
18                 eval "\$row =~ y/$1$2/$2$1/";
19         }
20         say $row;
21 }
22
23 say $row;
24