]> www.fi.muni.cz Git - aoc2021.git/blob - 06.pl
Day 25: pretty straightforward
[aoc2021.git] / 06.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my ($c, @s);
6
7 chomp (my @nums = <>);
8 $c = @nums;
9
10 my @n = @nums;
11 my $pos = 0;
12 while (@n > 1) {
13         my $ones = grep { substr ($_, $pos, 1) eq '1' } @n;
14         if ($ones >= @n/2) {
15                 @n = grep { substr ($_, $pos, 1) eq '1' } @n;
16         } else { 
17                 @n = grep { substr ($_, $pos, 1) eq '0' } @n;
18         }
19         $pos++;
20 }
21 my $ox = oct "0b".$n[0];
22
23 @n = @nums;
24 $pos = 0;
25 while (@n > 1) {
26         my $ones = grep { substr ($_, $pos, 1) eq '0' } @n;
27         if ($ones > @n/2) {
28                 @n = grep { substr ($_, $pos, 1) eq '1' } @n;
29         } else { 
30                 @n = grep { substr ($_, $pos, 1) eq '0' } @n;
31         }
32         $pos++;
33 }
34 my $co = oct "0b".$n[0];
35
36 say $ox * $co;
37