X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=aoc2020.git;a=blobdiff_plain;f=31.pl;fp=31.pl;h=ad2fc0e18ade839db00bfa22bd4b12b4c3950f03;hp=0000000000000000000000000000000000000000;hb=b90eabab4d95a25b79a24a8d6c84c10886f36369;hpb=eecc1b2e975ad2efc811a0cf640e580a031d53a9 diff --git a/31.pl b/31.pl new file mode 100755 index 0000000..ad2fc0e --- /dev/null +++ b/31.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl -w + +use strict; + +local $/ = "\n\n"; +my @ranges; +for (split /\n/, <>) { + my (@cls) = /\A(.*): (\d+)-(\d+) or (\d+)-(\d+)/; + print "$2:$3,$4:$5.\n"; + push @ranges, [$2, $3], [$4, $5]; +} + +$_ = <>; +my @your = /(\d+)/g; +print "Your:", join("|", @your), "\n"; + +my $sum = 0; +# my @nearby; +for (split /\n/, <>) { + next if !/\d/; + my @n = /(\d+)/g; + # print "nearby:", join("|", @n), "\n"; + # push @nearby, \@n; + NUM: + for my $num (@n) { + for my $r (@ranges) { + if ($num >= $r->[0] && $num <= $r->[1]) { + next NUM; + } + } + print "$num is invalid\n"; + $sum += $num; + } +} + +print "sum=$sum\n";