commit 1567c9d94981d17a8d1f9fc659270fdfe4cc45d2
parent a276c90085152cc5169f8625ea97bf5ebb29c832
Author: Samir Parikh <noreply@samirparikh.com>
Date: Sun, 6 Nov 2022 13:22:09 +0000
solve part 1 of day14
Diffstat:
2 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/day14/day14.pl b/day14/day14.pl
@@ -4,13 +4,16 @@
use strict;
use warnings;
use v5.32;
-use lib '.';
+#use lib '.';
#use Day13 qw( calc_tot_hap_chg );
+use List::Util qw( max );
use Data::Dumper;
@ARGV = "input" unless @ARGV;
chomp( my $input = do { local $/; <> } );
+my $TIME = 2503;
my %reindeer;
+my @distances;
foreach ( split /\n/, $input ) {
my ( $reindeer, $speed, $fly_duration, $rest_duration ) =
@@ -22,5 +25,29 @@ foreach ( split /\n/, $input ) {
}
say Dumper \%reindeer;
-#say "part 1: ";
+
+foreach ( keys %reindeer ) {
+# say ${$reindeer{ $_ }}{speed};
+# say $reindeer{ $_ }->{speed};
+# say $reindeer{ $_ }{ speed };
+ my $duration = $reindeer{ $_ }{ fly_duration } +
+ $reindeer{ $_ }{ rest_duration };
+ my $distance;
+ say $duration;
+ my ( $cycles, $remainder ) = ( int $TIME / $duration, $TIME % $duration );
+ say "$cycles\t$remainder";
+ if ( $remainder >= $reindeer{ $_ }{ fly_duration } ) {
+ $cycles++;
+ $distance = $cycles * $reindeer{ $_ }{ fly_duration } *
+ $reindeer{ $_ }{ speed };
+ } else {
+ $distance = $cycles * $reindeer{ $_ }{ fly_duration } +
+ ( $remainder * $reindeer{ $_ }{ speed } );
+ }
+ say "$_ traveled $distance km after $TIME seconds";
+ push @distances => $distance;
+}
+
+
+say "part 1: ", max @distances;
#say "part 2: ";
diff --git a/day14/input b/day14/input
@@ -0,0 +1,9 @@
+Dancer can fly 27 km/s for 5 seconds, but then must rest for 132 seconds.
+Cupid can fly 22 km/s for 2 seconds, but then must rest for 41 seconds.
+Rudolph can fly 11 km/s for 5 seconds, but then must rest for 48 seconds.
+Donner can fly 28 km/s for 5 seconds, but then must rest for 134 seconds.
+Dasher can fly 4 km/s for 16 seconds, but then must rest for 55 seconds.
+Blitzen can fly 14 km/s for 3 seconds, but then must rest for 38 seconds.
+Prancer can fly 3 km/s for 21 seconds, but then must rest for 40 seconds.
+Comet can fly 18 km/s for 6 seconds, but then must rest for 103 seconds.
+Vixen can fly 18 km/s for 5 seconds, but then must rest for 84 seconds.