]> www.fi.muni.cz Git - aoc.git/blob - 2016/18.pl
Year 2016, days 1-10: so far pretty interesting
[aoc.git] / 2016 / 18.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use v5.30;
5
6 sub str_len {
7         my ($in) = @_;
8         my $l = 0;
9         while ($in) {
10                 $l++ while $in =~ s/\A[A-Z]//;
11                 next if $in !~ /\A\((\d+)x(\d+)\)/;
12                 my $str = substr($in, length("($1x$2)"), $1);
13                 substr($in, 0, length("($1x$2)") + $1) = '';
14                 my $c = $2;
15                 $l += $c * str_len($str);
16         }
17         return $l;
18 }
19
20 chomp (my $in = <>);
21 say str_len($in);