summary refs log tree commit diff homepage
path: root/2023/day06.pl
blob: 723ae895073e2961538d2db043545c3dee6c153d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use strict;
use warnings;
my (@times, @dists);
while (<>) {
	chomp;
	@times = split(/ +/) if s/^Time: +//;
	@dists = split(/ +/) if s/^Distance: +//;
}
sub wins {
	my ($time, $dist) = @_;
	my $wins = 0;
	for my $hold (1 .. $time - 1) {
		my $travel = $hold * ($time - $hold);
		$wins++ if $travel > $dist;
	}
	$wins;
}
my $ways = 1;
for (my $race = 0; $race < scalar(@times); $race++) {
	$ways *= wins($times[$race], $dists[$race]);
}
print $ways, "\n";
print wins(int(join("", @times)), int(join("", @dists))), "\n";