]> www.fi.muni.cz Git - aoc.git/blob - 2017/15.pl
Day 25: examining the input
[aoc.git] / 2017 / 15.pl
1 #!/usr/bin/perl
2
3 use v5.30;
4 use strict;
5
6
7 my %regs;
8 while (<>) {
9         chomp;
10         my ($reg, $op, $val, $creg, $cop, $cval) =
11                 /^(\w+) (\S\Sc) (-?\d+) if (\w+) (\S+) (-?\d+)/;
12         $regs{$reg} //= 0;
13         $regs{$creg} //= 0;
14         say "$reg $op $val $creg $cop $cval";
15         if ($cop eq '<' && $regs{$creg} < $cval
16                 || $cop eq '>' && $regs{$creg} > $cval
17                 || $cop eq '==' && $regs{$creg} == $cval
18                 || $cop eq '!=' && $regs{$creg} != $cval
19                 || $cop eq '<=' && $regs{$creg} <= $cval
20                 || $cop eq '>=' && $regs{$creg} >= $cval) {
21                 if ($op eq 'inc') {
22                         $regs{$reg} += $val;;
23                 } else {
24                         $regs{$reg} -= $val;
25                 }
26         }
27 }
28
29 use List::Util qw(max);
30
31 say max values %regs;