isundil 3 years ago
parent
commit
03b3a31878
2 changed files with 2568 additions and 0 deletions
  1. 2500 0
      d2/input
  2. 68 0
      d2/main.js

+ 2500 - 0
d2/input

@@ -0,0 +1,2500 @@
+A Z
+A Z
+C Y
+A X
+A X
+A Z
+C X
+A X
+C Y
+A Z
+B Y
+B Y
+C X
+C Y
+C X
+B Y
+A Y
+C Y
+B Y
+B Z
+B Y
+C X
+A Z
+C Y
+B Y
+B Y
+A Z
+B Y
+B Y
+B Y
+B Z
+B Y
+A Z
+B Y
+C Y
+B Y
+B Z
+C X
+B Z
+A X
+B Y
+B Z
+C Y
+A Z
+C Y
+A Z
+B Y
+C Y
+A Z
+A Z
+B Y
+C Y
+C X
+A Z
+B Z
+A Z
+B Y
+C X
+B Y
+B Y
+B Y
+A Y
+B Z
+C Y
+C X
+A Z
+B Y
+B Y
+B X
+A Z
+C X
+B Y
+B Y
+A Z
+A Z
+A X
+A X
+B Y
+C X
+A X
+A Z
+A Z
+B Y
+C Y
+B Z
+A X
+B Z
+A Z
+B Y
+A Z
+C Y
+A Z
+A X
+B Y
+C Y
+B Y
+A X
+B Z
+C Y
+B Y
+B Y
+A Z
+A X
+A X
+B Y
+C Y
+B X
+B Z
+C X
+B Y
+A Y
+B Y
+B Y
+B Y
+A X
+C Y
+A Z
+C Y
+C Y
+B Z
+B Y
+A Z
+A Z
+A Z
+B Y
+C Y
+B Z
+C X
+C Y
+B Z
+A X
+A Z
+C Y
+B Y
+C Y
+C Y
+C Y
+B Y
+B X
+B Y
+B Y
+C Y
+A X
+B Z
+B X
+C X
+B X
+C Y
+B Z
+B Y
+A X
+C Y
+C Y
+C X
+B Z
+B Y
+A Y
+B Z
+A Z
+B Y
+B Y
+B Z
+B Z
+C Y
+A Z
+A X
+A X
+C Y
+B Y
+A Z
+B Z
+A X
+A Z
+B Z
+C Y
+C Z
+A X
+A Y
+B Y
+C Y
+B Y
+C Y
+B Z
+B Y
+A Z
+C Y
+B Z
+B Y
+A Z
+A Y
+B Y
+B Y
+C Y
+A Z
+C Y
+B Y
+B Y
+A X
+A Z
+A Z
+B Y
+B Y
+B Z
+C Y
+C X
+B Z
+A Y
+B Z
+A X
+C X
+A Y
+B Z
+B Z
+A X
+C X
+C X
+A Z
+C Y
+A X
+A X
+C X
+A X
+B Z
+C Z
+B Z
+B Y
+B Y
+A Z
+A Z
+B Y
+A Z
+C Y
+C X
+B Y
+A X
+A X
+B Z
+C Y
+C Y
+A X
+B Z
+A X
+C X
+C X
+B Z
+C X
+B Z
+A X
+A Y
+A X
+A Z
+A X
+B Y
+C Y
+A X
+C Y
+A Z
+B Z
+A Z
+C Y
+A X
+A Z
+B Y
+A Z
+B Z
+B Z
+A Z
+B Z
+A X
+B Y
+B Z
+C X
+B Y
+B Y
+B Y
+B Y
+A X
+B Z
+B Z
+A Z
+A Z
+C Y
+B Y
+C X
+A X
+B Y
+B Y
+C X
+B Y
+A X
+C Y
+A Z
+B Y
+A Y
+B Z
+B Y
+A Z
+A X
+B Z
+C Y
+A Z
+C Y
+C X
+B Y
+B Z
+C X
+A Y
+B Z
+A Y
+B Z
+B Z
+B Y
+B Z
+C X
+B Y
+A X
+B Z
+A Z
+B Y
+A Z
+C Y
+C Y
+C X
+C X
+A X
+C X
+A X
+A X
+B Z
+B Y
+B Y
+B Y
+B Y
+C X
+C X
+A Z
+A Z
+C X
+C X
+C Y
+C Y
+C Y
+B Y
+A Z
+C Y
+B Z
+B Z
+B Y
+C X
+C X
+C Y
+C Y
+C X
+B Z
+B Z
+B Y
+C Y
+B Y
+A Z
+C Y
+A X
+B Y
+C Y
+C Y
+C Y
+B Y
+A Z
+B Y
+A X
+B Z
+C X
+A Z
+C X
+A Z
+B Z
+C Y
+C Y
+C Y
+C X
+B Z
+C X
+B Y
+B Z
+C X
+B X
+A Z
+B Z
+B Y
+C Y
+B Z
+C Y
+A X
+B Z
+C Y
+C Y
+B Z
+B Y
+C Y
+B Z
+C Y
+A Z
+C X
+C X
+C Y
+A Z
+C Z
+C Y
+B Y
+C Y
+B Y
+B Y
+B Z
+C X
+C X
+B Z
+B Z
+B Z
+A Z
+B Y
+B Y
+A X
+B Y
+C Y
+B Y
+C X
+C X
+B Y
+B Y
+A Y
+B Z
+B Y
+B Y
+C Y
+A Z
+C X
+A Y
+B Y
+B Z
+B Y
+A Y
+C Y
+A Y
+A Z
+B Y
+A Z
+C Y
+C Y
+B Y
+A Z
+B Y
+B Y
+A Z
+B Z
+B Y
+C X
+C Y
+B Z
+B Y
+B Y
+A Z
+C Z
+A Z
+A X
+C X
+B Z
+B Z
+C X
+C Y
+B Y
+B X
+A X
+C Y
+B Z
+B Y
+C X
+B Y
+A Z
+A Z
+A X
+C Y
+B Z
+B Y
+C X
+C X
+B Y
+A Z
+C Z
+B Y
+A Z
+C Y
+B Y
+C X
+A Z
+A Z
+A X
+C X
+A X
+C X
+C X
+A Z
+C X
+B Y
+A Z
+B Y
+B Y
+C Y
+C X
+A Z
+B Z
+B Y
+B Y
+A Y
+A Z
+B Y
+A Z
+B Z
+B Y
+C Y
+A Z
+B Y
+B Y
+B Y
+C Y
+C X
+A X
+A Z
+B Z
+B Y
+C Y
+B Z
+C X
+B Y
+C X
+A Z
+B Y
+B X
+B Y
+A Y
+A X
+A X
+C X
+C X
+B Y
+B X
+C Y
+A Z
+B Z
+C Y
+C Y
+B Y
+A Z
+C X
+A Z
+C Y
+B Z
+B X
+C X
+B X
+C X
+B Y
+C Y
+C Y
+B Z
+B Y
+B Z
+B Z
+A Z
+B Y
+A Y
+B Z
+C X
+C Y
+C X
+A Z
+B Z
+C Y
+B Y
+B Z
+C X
+B Y
+A Y
+A X
+A X
+C Y
+B X
+C X
+B Z
+A Z
+A Y
+B Z
+C X
+C X
+B Y
+A X
+B Z
+C Y
+B X
+B Z
+C Y
+B Y
+C Y
+B Z
+B Y
+B Z
+B Y
+C X
+B Y
+C X
+B Z
+B Z
+C X
+B Z
+A X
+B X
+B Y
+A X
+B Z
+C X
+B Z
+B Y
+B Y
+C X
+A Y
+B Z
+B Z
+B Y
+B Y
+B Z
+C Y
+B Z
+C Y
+C X
+A Z
+C X
+A X
+C Y
+B Y
+C X
+A Z
+B Y
+A Z
+A Z
+B X
+C Y
+B Z
+C Y
+B Y
+B Z
+A X
+B Z
+A X
+C X
+B Z
+B Y
+C X
+C Y
+C Y
+B X
+C X
+C X
+B Z
+C Y
+B Z
+B Y
+B Z
+C Y
+B Y
+C Y
+C X
+B Y
+B Y
+B Z
+A Z
+C X
+A Z
+B Y
+B Z
+A Z
+C Y
+A Z
+B Y
+A Z
+A Z
+C Y
+A Y
+B Y
+A Y
+C X
+B Y
+C X
+B Z
+C Y
+A Z
+C X
+C X
+B Z
+C Z
+C Z
+B Y
+B Y
+C Y
+C Y
+A Z
+C Y
+C Y
+C Y
+A Z
+B Z
+C Y
+B Y
+C Y
+C X
+C X
+B X
+B Y
+C Y
+A Y
+B Y
+B Z
+B Y
+A Y
+B Y
+B X
+C X
+C Z
+C Y
+C Y
+C Y
+B Z
+B X
+C Y
+B Z
+C X
+C Y
+A Z
+A Y
+B Y
+C X
+A Z
+B Y
+C Y
+B Z
+A Z
+A Z
+B Y
+A Z
+C Y
+A X
+C Y
+B Z
+B Z
+B Z
+B Y
+B Y
+A Z
+A Z
+B Y
+C X
+A Z
+C Y
+B Y
+A Z
+C Y
+A Z
+B Z
+B Z
+A Y
+B Y
+B Y
+B Z
+C Z
+B Y
+B X
+B Y
+C X
+B Z
+C Y
+B Z
+A Y
+B Z
+A Z
+A X
+A Z
+C X
+C X
+B Y
+C X
+C Y
+A Z
+B Z
+B Y
+A Z
+B Z
+B Z
+B Z
+C Y
+B Y
+A X
+C Y
+C Y
+C X
+A X
+C Y
+B Y
+C X
+B Z
+A Y
+B X
+B Y
+A Z
+B Y
+B Y
+B Y
+B Z
+C X
+B Z
+B Z
+C X
+B Y
+A Y
+B Y
+C Y
+A Z
+C Z
+B Y
+B Z
+B Z
+C Y
+A Z
+C Y
+C X
+C Y
+B Y
+A X
+A X
+B Z
+C Y
+B Z
+B Y
+A Y
+C X
+A Z
+B Z
+C Y
+C Z
+C X
+B Y
+C X
+A Y
+A Y
+B Z
+C X
+B X
+C X
+B Y
+B Z
+B Z
+B Y
+C Y
+B Y
+B Y
+A Z
+B Z
+B Y
+C X
+B Z
+B Y
+B Y
+C Y
+C Z
+C X
+B Y
+A X
+C Y
+C X
+B Z
+C Y
+A X
+B Y
+A Y
+B Y
+C X
+C Y
+C X
+A X
+B Z
+C X
+B Y
+A Z
+C X
+B Y
+A Z
+B Y
+B Y
+B Y
+A Z
+A X
+C X
+C Y
+C Y
+B Y
+B Y
+B Z
+A Y
+C X
+C X
+B Y
+B Y
+B Z
+A X
+C X
+C X
+B X
+A X
+B Z
+B Y
+C X
+A X
+B Y
+C Y
+A X
+B Y
+C X
+B Z
+C Z
+B X
+C Y
+B Y
+C Y
+A Z
+C Y
+B Z
+C X
+B Z
+C X
+C Y
+C X
+C Y
+C Z
+C X
+C X
+B Y
+C Y
+C X
+C X
+B Z
+B Z
+A X
+C Y
+C Z
+B Y
+C Z
+C Y
+C X
+C X
+B Y
+C Y
+A Y
+B Y
+A Y
+B Y
+B Y
+B Y
+C Y
+C Z
+B Y
+C X
+C X
+B Z
+B Y
+B Z
+C Y
+B Z
+C X
+B Z
+B Y
+B Y
+A Z
+A X
+B X
+A X
+C X
+C Y
+B Y
+A X
+B Z
+B Y
+B Y
+A X
+C X
+C X
+B Y
+B Y
+C Y
+C Y
+B Z
+B Y
+B Y
+B Y
+C Y
+A X
+B Y
+C Y
+B Z
+B Y
+B Y
+B Z
+B Y
+B Y
+B Z
+B Y
+B Y
+C Y
+A Z
+B Z
+A Y
+B Y
+C Y
+B Z
+B Y
+B Y
+C X
+A X
+C Z
+C X
+B Y
+B Z
+C Y
+C X
+B Z
+A Z
+A Z
+C Y
+A Z
+B Y
+B Y
+B Z
+B Y
+C Y
+B Z
+C Y
+B Z
+B Z
+B Y
+C X
+B Y
+B Z
+A X
+C X
+C X
+B Z
+B Z
+C X
+B Y
+A Z
+B Y
+B Z
+C Y
+B Y
+A Z
+B Z
+B Y
+B Y
+B Y
+C X
+C Y
+A Z
+B Y
+B Y
+A Z
+A Z
+A Z
+A X
+B X
+A Z
+C Y
+C X
+A X
+B Z
+A X
+C X
+B Z
+B Y
+B Y
+C X
+A Z
+C Y
+C X
+A Y
+C X
+A Z
+B Z
+B Z
+B Y
+C Y
+B Z
+A Z
+A Z
+C Y
+B Y
+B Z
+A Z
+A Z
+B Z
+B Y
+A Z
+C Y
+A Z
+A Z
+B Y
+B Z
+B Z
+A X
+A X
+B Y
+B Z
+B Z
+C X
+B Z
+C Z
+B Y
+B Y
+B Y
+B Z
+A X
+A Z
+B Y
+A X
+B Y
+B Y
+C X
+C X
+C Y
+C Y
+A Z
+A X
+B Y
+A Z
+B Z
+B Y
+C X
+B Y
+B X
+C X
+A X
+A Z
+C Y
+C X
+C Y
+B Y
+B Y
+A X
+A Y
+B Y
+A Y
+C Y
+C X
+B Y
+B Y
+B Z
+C X
+C X
+B Y
+C X
+B Z
+C Y
+A X
+A Z
+A Z
+B Y
+A Y
+C Y
+C X
+C Y
+C Y
+B Y
+B Y
+A Z
+C X
+A X
+B Y
+B Y
+B Y
+B Z
+A Z
+B Y
+B Y
+A Z
+B Y
+A Z
+C X
+B Z
+C Y
+B Y
+B Y
+A X
+B Y
+A X
+B Y
+B Z
+C X
+B Z
+B Y
+C X
+C Y
+C Y
+A X
+A X
+B Z
+B Z
+B Y
+C X
+A Z
+C Y
+C Y
+C Y
+B Z
+B Z
+B Y
+A Z
+C Y
+A X
+A Z
+C Y
+B Z
+B Y
+B Y
+A Z
+B Y
+A Z
+C X
+A X
+B Z
+B Y
+B Y
+B Z
+A Z
+C X
+B Y
+C X
+B Z
+C X
+A Z
+B Y
+A Z
+A Z
+B Y
+C Y
+C X
+C Y
+A X
+C Y
+B Y
+B Z
+C X
+C Y
+A X
+B Z
+B Y
+C Y
+A X
+B Z
+A Y
+B Z
+B Y
+B Z
+A X
+A Z
+A X
+B Z
+C Y
+B Y
+A Y
+B Z
+A Z
+C Y
+C X
+B Z
+B Y
+C Y
+B Z
+C X
+C Y
+A X
+B Z
+B Z
+B Z
+B Z
+B Y
+C X
+B Y
+C X
+A Z
+A Z
+C Y
+A Y
+B Y
+C X
+A Z
+B Z
+C X
+C X
+A X
+B Y
+C X
+A Z
+B Y
+B Y
+B Y
+B Y
+C X
+C Y
+C Y
+B Y
+A Z
+B Y
+B Z
+B Z
+B Y
+A X
+B Z
+B Z
+C X
+C X
+C Y
+B Y
+C Y
+B Y
+B Y
+B Z
+B X
+C X
+C Y
+A Z
+B Z
+B Y
+A X
+B Z
+A Z
+B Z
+B Y
+B Y
+A Z
+C Y
+B Y
+C Y
+B Z
+B Y
+C X
+B Z
+B Z
+C Y
+C Y
+B Y
+C Y
+C X
+B X
+B Y
+C Y
+B Y
+B X
+C X
+B Y
+A Y
+A Z
+A Y
+B Z
+A Z
+A Z
+A Z
+B Y
+A Z
+A Z
+C Y
+B Z
+A Z
+A X
+B Y
+C Y
+C X
+C X
+A Z
+B Z
+B X
+B Z
+C X
+B Z
+C Y
+C X
+C Z
+C X
+B Z
+B Z
+B Z
+B Z
+A Z
+A Z
+C Y
+C Z
+C Y
+A X
+B Y
+B Y
+B Y
+A Z
+A Z
+B Z
+C Y
+C X
+B Y
+C X
+B Z
+B Y
+B Y
+B Y
+B Y
+B Y
+B X
+A Z
+A X
+A Y
+C X
+B Z
+B Y
+B Z
+C Y
+A Z
+B Z
+B Z
+C Y
+B Z
+B Z
+C X
+B Y
+C X
+B Z
+C X
+C Y
+C Y
+C X
+A Z
+A Z
+B Z
+B Y
+C X
+C X
+A Y
+A Z
+C X
+A X
+A X
+A Z
+C Y
+B Z
+B Y
+A Z
+B Y
+B Y
+B Z
+B Y
+C Y
+B Z
+A X
+B Y
+A X
+B Z
+A Z
+C X
+A X
+C Z
+A Z
+C Y
+A X
+B Y
+B Z
+B Z
+A X
+C Y
+A Z
+C X
+A Y
+C X
+B Y
+B Z
+A X
+B Y
+B Y
+A Y
+A X
+B Y
+C X
+A Y
+B Y
+B Y
+C Y
+A Z
+B Z
+A Z
+B Y
+A Z
+C Y
+C X
+B Z
+B Y
+B Z
+A X
+C Y
+C Z
+A X
+A X
+C Y
+C Y
+A Z
+C Y
+C X
+A Y
+C Y
+B Y
+B X
+B Y
+A Z
+C X
+C X
+B Y
+A Z
+A X
+B Z
+C X
+B Y
+B Y
+C Z
+A X
+A X
+B Z
+C X
+C Y
+B Z
+C Z
+B Y
+A Y
+A Z
+A Y
+C Y
+C Y
+C Y
+B Z
+B Z
+B Y
+B Y
+B Y
+B Z
+B Z
+C X
+A X
+C X
+B Y
+B Y
+B Y
+C Y
+B Y
+B Y
+C X
+A Y
+B Z
+C X
+B Z
+B Y
+A X
+C Y
+B Y
+C Y
+B Z
+B Y
+C Y
+C Z
+C Y
+A Y
+B Z
+A X
+B Z
+A Z
+A Z
+A Z
+B Y
+A X
+C Y
+B Y
+B Y
+B Y
+C X
+B Y
+A X
+C X
+B Y
+C X
+A Z
+B Z
+B Z
+B Y
+C Y
+B Y
+A Z
+B Y
+C Y
+B Z
+C X
+B Y
+B Y
+B Z
+C X
+C Y
+B Z
+B Z
+C Y
+C X
+C X
+B Y
+B Z
+A X
+C X
+A Z
+A Y
+B Z
+B Y
+B Y
+C Y
+C X
+B Y
+B Z
+C Y
+C Y
+C X
+C X
+B Z
+A Z
+B Z
+B Y
+C X
+A X
+C X
+A Z
+C X
+B Z
+C Z
+B Y
+C Y
+B Y
+C Z
+A Z
+B Y
+C Z
+A X
+B Z
+B X
+C Y
+C X
+B Z
+A Z
+B Y
+A X
+B X
+A Z
+C Y
+A Y
+A Z
+A X
+C X
+A Y
+C X
+B X
+B Y
+C Z
+A Z
+C X
+B Y
+C X
+C X
+B X
+B Y
+A Y
+B Y
+B Y
+A Z
+B Y
+C Y
+C X
+B Y
+B Y
+B Z
+C Y
+B Z
+A Z
+A Z
+A X
+B Y
+C Y
+B Y
+C Y
+C Y
+B Z
+A X
+C Y
+B Z
+C Y
+A Y
+B Y
+B Y
+B Y
+C Y
+A Z
+A Z
+B Z
+A Z
+C Y
+C Y
+B Y
+C X
+B Y
+A Z
+B Z
+A X
+B Z
+B Y
+B Z
+A X
+A X
+C Y
+A Z
+B Z
+C Y
+B Z
+C X
+B Z
+A X
+B Z
+B Z
+C Y
+B Y
+B Y
+C Y
+B Y
+A X
+B Y
+C Y
+A Z
+B Y
+C X
+A Z
+B Z
+A Z
+B Z
+C Y
+B Y
+B Y
+B Y
+C Y
+B Y
+B Y
+A Z
+B Y
+B Z
+C X
+B Z
+C X
+C X
+A X
+B Z
+C Z
+B Z
+A Y
+C X
+C X
+A Z
+A X
+A Y
+A X
+B Y
+B Y
+C X
+C Z
+A Y
+C Y
+B Y
+B Y
+C X
+C X
+B Z
+B Z
+B Y
+C Y
+A Z
+B Y
+C X
+C X
+A X
+A X
+A Y
+B Y
+C X
+A Z
+C Z
+C Y
+C Y
+C Y
+B Y
+C Y
+A Y
+A X
+B X
+B Y
+B Y
+B Y
+B Y
+A Z
+B Z
+B Y
+B Y
+C Y
+A X
+A Z
+A Z
+A Z
+B Y
+A X
+C Y
+C Y
+B Y
+B Y
+C Y
+A Z
+C Y
+A X
+C X
+B Z
+B Y
+C X
+B Y
+A X
+A Z
+C X
+C Y
+C Y
+C X
+C X
+B Z
+B Y
+A Z
+B Y
+B Z
+B Z
+B Y
+B Y
+A X
+C X
+C Y
+C X
+A Z
+B Z
+B Y
+B Y
+C Y
+A X
+A X
+C Y
+C X
+B Z
+A Y
+B Y
+B Z
+B Y
+A X
+C Y
+B Y
+A X
+C X
+B Y
+B Y
+A Z
+A Z
+A Z
+B Y
+B Y
+C X
+B Z
+A Z
+B Z
+A Z
+C X
+B Y
+C X
+B Y
+C X
+C X
+B Y
+B Y
+A Y
+C Y
+C Y
+B Z
+C X
+B Y
+B Y
+A X
+A Z
+B Y
+C Y
+B Y
+C Y
+A X
+C Y
+C Y
+B Z
+C Y
+A X
+C X
+A Z
+C Y
+A Z
+C X
+B Z
+B Y
+B Z
+C Y
+B X
+A Z
+C Y
+C X
+B Y
+C X
+B Z
+A X
+A Z
+C X
+B Z
+C X
+B Y
+A Z
+B Y
+C Y
+B Y
+C X
+C Y
+B X
+B X
+B Y
+B Y
+B Y
+B Z
+B Y
+C X
+A Z
+A Z
+C X
+B Y
+B Y
+B Y
+A Y
+C Y
+B Z
+C X
+C Y
+A X
+C Y
+B Z
+C Y
+B Y
+B Y
+B Z
+A Z
+A Z
+B Y
+A Y
+B Z
+A X
+C Y
+B Y
+A X
+C X
+B Y
+C Y
+B Z
+B Y
+C X
+A Z
+C Y
+A Z
+B Y
+C Y
+B Y
+C X
+A Z
+C Y
+C Y
+A Y
+B Z
+C X
+C X
+A Z
+C Z
+C X
+B Y
+C X
+A X
+C Y
+C X
+C X
+A X
+A Y
+A X
+C X
+A X
+A X
+B X
+B Y
+C Y
+A X
+B Z
+C X
+C Y
+B Y
+B Z
+C Y
+B Z
+B Y
+C X
+A X
+B Y
+B Z
+C Y
+A Z
+C X
+C Z
+A X
+A Z
+A Z
+B Z
+A Z
+B Y
+C Y
+C Y
+B Z
+C Y
+C Y
+C Y
+C X
+A X
+B Y
+A X
+C X
+C Z
+B Y
+A Z
+B Y
+C Y
+C Y
+B Z
+C Y
+C X
+B Z
+C Y
+B Y
+B Z
+A Z
+B Z
+B Z
+B Y
+A Z
+A Y
+C X
+B Y
+A Z
+C Y
+B Z
+A Z
+B Y
+B Y
+C Y
+B Y
+B Y
+B Y
+C Y
+B X
+B Y
+A X
+A X
+B Z
+A X
+C Y
+A Z
+B Y
+B Y
+B Z
+A Z
+C Y
+C X
+B Y
+A Z
+A X
+B Y
+C X
+B Z
+A X
+C X
+B Z
+B Z
+B Z
+B X
+A X
+C Z
+C X
+C Z
+B X
+A Z
+C X
+B Y
+C X
+C Y
+C Y
+B Y
+B Z
+B Y
+C Y
+C X
+A Z
+C Y
+C Y
+C Y
+B Z
+A Z
+A Y
+C X
+C Y
+B Y
+C Y
+C Y
+B Z
+C Y
+B Y
+B Y
+C X
+B Z
+B Y
+A X
+B Y
+A Z
+B Y
+C X
+B Y
+C X
+B Y
+A Z
+C X
+B Y
+C X
+B Z
+C X
+B Y
+A X
+C X
+C X
+A X
+C Y
+A Z
+C Y
+B Z
+A Z
+A X
+C X
+A X
+C Y
+A X
+A X
+B Z
+C X
+C Y
+A Y
+B Z
+B Y
+C Y
+B Y
+A Y
+C Y
+C Y
+B Y
+B Y
+B Z
+B Z
+C X
+B Y
+C X
+A X
+A Z
+C Y
+B Z
+C Y
+B Y
+C X
+C X
+A Z
+B Z
+A Z
+C X
+B Y
+B Z
+C Y
+B Y
+A X
+A X
+B Y
+B Y
+B Y
+A X
+B Y
+B Z
+A Z
+A X
+A X
+B Z
+B Y
+A X
+B Z
+A Z
+B Y
+B Z
+B Z
+B Z
+C Y
+C Y
+A Z
+B Y
+C Y
+A Z
+C X
+B Z
+A X
+B X
+B Y
+B Y
+C Y
+C Y
+B Z
+B Y
+A Z
+B Y
+A X
+B Z
+B Y
+C Z
+B Y
+B Y
+C Y
+B Y
+B Y
+A Y
+C Y
+A Z
+A Y
+B Z
+C X
+B Z
+A X
+A Z
+A X
+C Y
+A Z
+B Y
+B Z
+B Z
+C Y
+C Y
+C Y
+B X
+B Y
+B Z
+A X
+B Y
+C Y
+A X
+A X
+B Y
+C Y
+A Y
+B Z
+B Z
+B Z
+A Z
+B Y
+C X
+A Z
+C Y
+C Y
+B Y
+C Y
+C Y
+C Y
+C Y
+B Y
+B Z
+A Z
+B X
+C Y
+C X
+C X
+C Y
+A Z
+C Y
+C X
+B Z
+B Y
+A Y
+C Z
+B Y
+B Y
+B Y
+B Y
+C Y
+B Y
+C Y
+A Z
+B Y
+C X
+C Y
+B Z
+A X
+C Y
+B Y
+B Y
+B Y
+A Z
+A X
+A X
+C X
+C Z
+B Z
+A X
+A Z
+A X
+A Y
+C Y
+C Y
+A Z
+C X
+C X
+B X
+B Y
+A X
+A Z
+A X
+C Y
+B X
+A X
+A X
+C X
+A Y
+B Z
+A Z
+B Y
+A X
+A Z
+B Y
+A Z
+C Y
+B Z
+A Z
+C Y
+C X
+B Z
+C Y
+B Y
+C X
+A Z
+B Z
+A X
+A X
+C Z
+A X
+C X
+B Y
+B Z
+A X
+A X
+C Y
+A Z
+C Y
+C X
+C Y
+B Z
+B Y
+C X
+C X
+B Z
+B Z
+C Y
+A X
+B X
+C X
+C Y
+A X
+A Z
+B Y
+C X
+A Y
+C X
+C Y
+A Z
+B Y
+B Z
+B Y
+C X
+C Y
+C X
+C X
+B Y
+C X
+C X
+B Y
+C Z
+C Y
+C Y
+B Z
+B Z
+B Y
+A X
+B Y
+A Z
+A Y
+B Y
+C Y
+B Z
+B Z
+A X
+B Y
+A X
+B Y
+A Z
+B Y
+C X
+A Z
+B Z
+C Y
+B Y
+A Y
+A X
+C X
+A X
+B Y
+B Z
+B Z
+C Y
+A X
+B Y
+B Z
+B Y
+B X
+C Z
+B Z
+C X
+C Y
+C X
+B Z
+C Y
+A X
+A X
+C X
+B Y
+B X
+B Y
+A X
+C Y
+A Z
+B Y
+B Y
+B Y
+B Z
+B Y
+C X
+A Z
+C Y
+A Z
+B Z
+C X
+C Y
+C X
+C Y
+A Y
+B Z
+B Y
+B Z
+C Y
+A X
+B Y
+A X
+C X
+B X
+C X
+A Z
+B Z
+B Z
+C Y
+B Z

+ 68 - 0
d2/main.js

@@ -0,0 +1,68 @@
+const fs = require('fs');
+const readline = require('readline');
+
+const ROCK = 1;
+const PAPER = 2;
+const SCISSORS = 3;
+
+const LOSE = 0;
+const DRAW = 3;
+const WIN = 6;
+
+function isWin(input, output) {
+    return ((input === ROCK && output == PAPER) ||
+        (input === PAPER && output === SCISSORS) ||
+        (input === SCISSORS && output === ROCK));
+}
+
+function isLoss(input, output) {
+    return input != output && !isWin(input, output);
+}
+
+function getSymbol(input, expected) {
+    if (expected === DRAW)
+        return input;
+    if (expected === WIN) {
+        if (isWin(input, ROCK)) return ROCK;
+        if (isWin(input, PAPER)) return PAPER;
+        if (isWin(input, SCISSORS)) return SCISSORS;
+    } else {
+        if (isLoss(input, ROCK)) return ROCK;
+        if (isLoss(input, PAPER)) return PAPER;
+        if (isLoss(input, SCISSORS)) return SCISSORS;
+    }
+}
+
+async function main() {
+    let part1 = 0;
+    let part2 = 0;
+    for await (let line of readline.createInterface({ input: process.stdin })) {
+        let input;
+        let output;
+        let expectResult;
+
+        if (!line || !line.length)
+            continue;
+        switch (line[0]) {
+            case 'A': input = ROCK; break;
+            case 'B': input = PAPER; break;
+            case 'C': input = SCISSORS; break;
+        }
+        switch (line[2]) {
+            case 'X': output = ROCK; expectResult = LOSE; break;
+            case 'Y': output = PAPER; expectResult = DRAW; break;
+            case 'Z': output = SCISSORS; expectResult = WIN; break;
+        }
+        part1 += output;
+        part2 += expectResult + getSymbol(input, expectResult);
+        if (isWin(input, output))
+            part1 += WIN;
+        else if (input === output)
+            part1 += DRAW;
+    }
+    console.log("Score part1: ", part1);
+    console.log("Score part2: ", part2);
+};
+
+(main());
+