]> www.fi.muni.cz Git - aoc2020.git/blob - 31.pl
Task 9 Perl Golf-style
[aoc2020.git] / 31.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 local $/ = "\n\n";
6 my @ranges;
7 for (split /\n/, <>) {
8         my (@cls) = /\A(.*): (\d+)-(\d+) or (\d+)-(\d+)/;
9         print "$2:$3,$4:$5.\n";
10         push @ranges, [$2, $3], [$4, $5];
11 }
12
13 $_ = <>;
14 my @your = /(\d+)/g;
15 print "Your:", join("|", @your), "\n";
16
17 my $sum = 0;
18 # my @nearby;
19 for (split /\n/, <>) {
20         next if !/\d/;
21         my @n = /(\d+)/g;
22         # print "nearby:", join("|", @n), "\n";
23         # push @nearby, \@n;
24         NUM:
25         for my $num (@n) {
26                 for my $r (@ranges) {
27                         if ($num >= $r->[0] && $num <= $r->[1]) {
28                                 next NUM;
29                         }
30                 }
31                 print "$num is invalid\n";
32                 $sum += $num;
33         }
34 }
35
36 print "sum=$sum\n";