]> www.fi.muni.cz Git - aoc.git/blobdiff - 2020/15.pl
Moved 2020 to a subdir
[aoc.git] / 2020 / 15.pl
diff --git a/2020/15.pl b/2020/15.pl
new file mode 100755 (executable)
index 0000000..f82c817
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my @code = map { [ split /\s+/ ] } <>;
+
+my $acc = 0;
+my $pc = 0;
+my %seen;
+
+while (!$seen{$pc}) {
+       $seen{$pc} = 1;
+       my ($ins, $arg) = @{ $code[$pc] };
+       print "pc=$pc, acc=$acc, $ins $arg\n";
+       if ($ins eq 'nop') {
+               $pc++;
+       } elsif ($ins eq 'acc') {
+               $acc += $arg; $pc++;
+       } elsif ($ins eq 'jmp') {
+               $pc += $arg;
+       }
+}
+print "loop at $pc, acc=$acc\n";