summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--2023/day06.pl20
1 files changed, 20 insertions, 0 deletions
diff --git a/2023/day06.pl b/2023/day06.pl
new file mode 100644
index 0000000..92dd798
--- /dev/null
+++ b/2023/day06.pl
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+my (@times, @dists);
+while (<>) {
+	chomp;
+	@times = split(/ +/) if s/^Time: +//;
+	@dists = split(/ +/) if s/^Distance: +//;
+}
+my $ways = 1;
+for (my $race = 0; $race < scalar(@times); $race++) {
+	my $time = $times[$race];
+	my $dist = $dists[$race];
+	my $wins = 0;
+	for my $hold (1 .. $time - 1) {
+		my $travel = $hold * ($time - $hold);
+		$wins++ if $travel > $dist;
+	}
+	$ways *= $wins;
+}
+print $ways, "\n";