]> www.fi.muni.cz Git - aoc2021.git/blob - 41.pl
Day 25: pretty straightforward
[aoc2021.git] / 41.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my (@p) = @ARGV;
6 my @s = (0, 0);
7 my $d = 1;
8 my $dc = 0;
9
10 sub roll() {
11         $dc++;
12         my $rv = $d++;
13         $d = 1 if $d > 100;
14         return $rv;
15 }
16
17 while (1) {
18         for (0 .. 1) {
19                 $p[$_] += roll()+roll()+roll();
20                 $p[$_] -= 10 while $p[$_] > 10;
21                 $s[$_] += $p[$_];
22                 # say "$dc: $d, $_, $p[$_]";
23                 if ($s[$_] >= 1000) {   
24                         say $s[1-$_]*$dc;
25                         exit 0;
26                 }
27         }
28 }