]> www.fi.muni.cz Git - aoc.git/blobdiff - 2018/08.pl
Year 2018
[aoc.git] / 2018 / 08.pl
diff --git a/2018/08.pl b/2018/08.pl
new file mode 100755 (executable)
index 0000000..d5446ff
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/perl -w
+
+use v5.30;
+use strict;
+
+my ($g, $sleep_m);
+my (%sleep_g, %sleep_g_m);
+for (sort <>) {
+       if (/#(\d+) begins/) {
+               $g = $1;
+       } elsif (/:(\d+)\] falls/) {
+               $sleep_m = $1;
+       } elsif (/:(\d+)\] wakes/) {
+               $sleep_g{$g} += $1 - $sleep_m;
+               for my $min ($sleep_m .. $1 - 1) {
+                       $sleep_g_m{$g}{$min}++;
+               }
+       }
+}
+
+my $max_g;
+my $max_min;
+my $max_min_sleep;
+for my $g (keys %sleep_g) {
+       for my $min (keys %{ $sleep_g_m{$g} }) {
+               my $n = $sleep_g_m{$g}{$min};
+               if (!defined $max_min_sleep || $max_min_sleep < $n) {
+                       $max_g = $g;
+                       $max_min = $min;
+                       $max_min_sleep = $n;
+               }
+       }
+}
+
+say $max_g * $max_min;
+                       
+                       
+
+               
+       
+