]> www.fi.muni.cz Git - aoc2020.git/blob - 26.pl
Task 9 Perl Golf-style
[aoc2020.git] / 26.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 my $timestamp = <>;
6 my @buses = split /,/, <>;
7
8 my $mins = 1;
9 my %bus_time;
10 my $first = shift @buses;
11 for my $bus (@buses) {
12         if ($bus =~ /\d/) {
13                 $bus_time{$bus} = $mins % $bus;
14                 print "Bus $bus at t+$mins ($bus_time{$bus})\n";
15         }
16         $mins++;
17 }
18
19 @buses = grep /\d/, @buses;
20
21 my $t = $first;
22 my $add = $first;
23
24 for my $bus (keys %bus_time) {
25         print "bus $bus at $bus_time{$bus}\n";
26         while (1) {
27                 print "t=$t, add=$add\n";
28                 last if ($t + $bus_time{$bus}) % $bus == 0;
29                 $t += $add;
30         }
31         $add *= $bus;
32 }
33 print "t=$t\n";
34