]> www.fi.muni.cz Git - aoc2021.git/commitdiff
Day 7: My brain was too sluggish today.
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Tue, 7 Dec 2021 05:25:25 +0000 (06:25 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Tue, 7 Dec 2021 05:25:25 +0000 (06:25 +0100)
13.pl [new file with mode: 0755]
14.pl [new file with mode: 0755]

diff --git a/13.pl b/13.pl
new file mode 100755 (executable)
index 0000000..79740a3
--- /dev/null
+++ b/13.pl
@@ -0,0 +1,18 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @c = split /[,\s]/, <>;
+
+my $max;
+($max = !$max || $max < $_ ? $_ : $max) for @c;
+
+my $min_f;
+for my $pos (0 .. $max) {
+       my $f = 0;
+       $f += abs($_ - $pos) for @c;
+       $min_f = $f if !$min_f || $min_f > $f;
+       # say "$pos $f $min_f";
+}
+
+say $min_f;
diff --git a/14.pl b/14.pl
new file mode 100755 (executable)
index 0000000..3822e47
--- /dev/null
+++ b/14.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @c = split /[,\s]/, <>;
+
+my $max;
+($max = !$max || $max < $_ ? $_ : $max) for @c;
+
+my $min_f;
+for my $pos (0 .. $max) {
+       my $f = 0;
+       for my $c1 (@c) {
+               my $dist = abs($c1 - $pos);
+               $f += $dist * ($dist+1) /2;
+       }
+       $min_f = $f if !$min_f || $min_f > $f;
+       # say "$pos $f $min_f";
+}
+
+say $min_f;