From: Jan "Yenya" Kasprzak Date: Thu, 5 Dec 2024 08:53:41 +0000 (+0100) Subject: Day 5: input properties assumptions X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=509baa9fb443146501ceb95d3fb7db35946d0df5;p=aoc.git Day 5: input properties assumptions --- diff --git a/2024/09.pl b/2024/09.pl new file mode 100755 index 0000000..9107de6 --- /dev/null +++ b/2024/09.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl -w + +use v5.40; + +my %rules; +while (<>) { + chomp; + last if /^\s*$/; + my ($src, $dst) = /\d+/g; + $rules{$src}->{$dst}++; +} + +my $sum; + +UPDATE: +while (<>) { + chomp; + my @upd = /\d+/g; + for my ($i, $u1) (indexed @upd[0 .. $#upd-1]) { + for my ($j, $u2) (indexed @upd[$i+1 .. $#upd]) { + next UPDATE if $rules{$u2}->{$u1}; + } + } + $sum += $upd[@upd/2]; +} + +say $sum; diff --git a/2024/10.pl b/2024/10.pl new file mode 100755 index 0000000..192084f --- /dev/null +++ b/2024/10.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl -w + +use v5.40; + +my %rules; +while (<>) { + chomp; + last if /^\s*$/; + my ($src, $dst) = /\d+/g; + $rules{$src}{$dst}++; +} + +my $sum; + +while (<>) { + chomp; + my @upd = /\d+/g; + for my ($i, $u1) (indexed @upd[0 .. $#upd-1]) { + for my ($j, $u2) (indexed @upd[$i+1 .. $#upd]) { + goto INCORR if $rules{$u2}{$u1}; + } + } + next; +INCORR: + @upd = sort { $rules{$a}{$b} ? -1 : 1 } @upd; + $sum += $upd[@upd/2]; +} + +say $sum;