Quick actions

cmd+k|ctrl+k

Navigation

Languages

AoC 2023, day 6

Snippet info

Language

Raku

Visibility

public

Author

seaker

Created

2023-12-06T06:18:28.328116Z

Updated

2023-12-06T08:50:52.784138Z

sub win-count($time, $dist) {
    my $a = sqrt(($time² / 4) - $dist);
    ($time / 2 + $a - 1).ceiling - ($time / 2 - $a + 1).floor + 1
}

my ($times, $dists) = $*IN.lines.map(*.comb(/\d+/).Array);
put 'part 1: ', [*] (@$times Z @$dists).map({ win-count(.[0], .[1]) });
put 'part 2: ', win-count($times.join, $dists.join);
INFO