blob: 8ebe5219645051ebe4da8d0f4a9b4d3af00c61c2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
use strict;
use warnings;
my (%rules, @ticket, @nearby);
while (<>) {
chomp;
if (/([^:]+): (\d+)-(\d+) or (\d+)-(\d+)/) {
$rules{$1} = [$2, $3, $4, $5];
} elsif (/your ticket:/) {
<>;
chomp;
@ticket = split ',';
} elsif (/^[\d,]+$/) {
my @fields = split ',';
push @nearby, \@fields;
}
}
my $error = 0;
foreach my $t (@nearby) {
foreach my $f (@$t) {
my $valid = 0;
foreach my $r (values %rules) {
$valid = 1 if $f >= $$r[0] && $f <= $$r[1];
$valid = 1 if $f >= $$r[2] && $f <= $$r[3];
}
$error += $f unless $valid;
}
}
print "$error\n";
|