From: Jan "Yenya" Kasprzak Date: Sun, 13 Dec 2020 14:50:03 +0000 (+0100) Subject: Day 13 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=aoc2020.git;a=commitdiff_plain;h=b957ac325434a1623becbe1850127821a94c38fe Day 13 --- diff --git a/25.pl b/25.pl new file mode 100755 index 0000000..60b72ca --- /dev/null +++ b/25.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl -w + +use strict; + +my $timestamp = <>; +my @buses = grep { /\d+/ } split /,/, <>; + +my ($min_del, $min_bus); +for my $bus (@buses) { + my $delay = $bus*(1+int(($timestamp-1)/$bus))-$timestamp; + print "Bus $bus delay $delay\n"; + if (!defined $min_del || $min_del > $delay) { + $min_bus = $bus; + $min_del = $delay; + } +} + +print "$min_bus * $min_del = ", $min_bus * $min_del, "\n"; + diff --git a/26.pl b/26.pl new file mode 100755 index 0000000..90d07ae --- /dev/null +++ b/26.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w + +use strict; + +my $timestamp = <>; +my @buses = split /,/, <>; + +my $mins = 1; +my %bus_time; +my $first = shift @buses; +for my $bus (@buses) { + if ($bus =~ /\d/) { + $bus_time{$bus} = $mins % $bus; + print "Bus $bus at t+$mins ($bus_time{$bus})\n"; + } + $mins++; +} + +@buses = grep /\d/, @buses; + +my $t = $first; +my $add = $first; + +for my $bus (keys %bus_time) { + print "bus $bus at $bus_time{$bus}\n"; + while (1) { + print "t=$t, add=$add\n"; + last if ($t + $bus_time{$bus}) % $bus == 0; + $t += $add; + } + $add *= $bus; +} +print "t=$t\n"; +