]> www.fi.muni.cz Git - aoc2020.git/blobdiff - 27.pl
Day 14
[aoc2020.git] / 27.pl
diff --git a/27.pl b/27.pl
new file mode 100755 (executable)
index 0000000..a17a382
--- /dev/null
+++ b/27.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+
+use strict;
+no warnings 'portable';
+
+my @mem;
+
+my ($andm, $orm);
+while (<>) {
+       chomp;
+       if (/mask = (\S+)/) {
+               ($orm, $andm) = ($1, $1);
+               $andm =~ s/X/1/g; $andm = oct "0b$andm";
+               $orm  =~ s/X/0/g; $orm  = oct "0b$orm";
+               print "andm=$andm\n orm=$orm\n";
+               next;
+       }
+       if (/mem\[(\d+)\] = (\d+)/) {
+               $mem[$1] = ($2 | $orm) & $andm;
+               print "mem[$1] = $2 => $mem[$1]\n";
+       }
+}
+
+my $sum;
+for (@mem) { $sum += $_ if defined $_ };
+print "Sum=$sum\n";