]> www.fi.muni.cz Git - aoc.git/blob - 2023/09.pl
Day 25: examining the input
[aoc.git] / 2023 / 09.pl
1 #!/usr/bin/perl -w
2
3 use v5.38;
4 use List::Util qw(min);
5
6 $/ = "\n\n";
7 my @seeds = scalar(<>) =~ /\d+/g;
8 say join ",", @seeds;
9
10 while (<>) {
11         chomp;
12         my @rules = split /\n/;
13         say shift @rules;
14         @rules = map { [ /\d+/g ] } @rules;
15         for (@seeds) {
16                 for my $rule (@rules) {
17                         if ($_ >= $rule->[1] && $_ < $rule->[1] + $rule->[2]) {
18                                 $_ = $rule->[0] + $_ - $rule->[1];
19                                 last;
20                         } 
21                 }
22         }
23         say join ",", @seeds;
24 }
25
26 say min @seeds;