From 509baa9fb443146501ceb95d3fb7db35946d0df5 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Thu, 5 Dec 2024 09:53:41 +0100 Subject: [PATCH] Day 5: input properties assumptions --- 2024/09.pl | 27 +++++++++++++++++++++++++++ 2024/10.pl | 29 +++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 2024/09.pl create mode 100755 2024/10.pl 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; -- 2.43.5