diff --git a/aoc/2022/day2/d2c1.js b/aoc/2022/day2/d2c1.js new file mode 100644 index 0000000..6e9b691 --- /dev/null +++ b/aoc/2022/day2/d2c1.js @@ -0,0 +1,96 @@ +"use strict"; + +const fs = require("fs"); +const inputText = fs.readFileSync("./input.txt").toString("utf-8"); +const splitInputText = inputText.split("\n"); + +const splitTestData = ` +A Y +B X +C Z +`.split("\n"); + +function processData(input) { + let currentScore = 0; + + input.forEach((line) => { + if (line.length > 0) { + //add line check the moves are ABC / XYZ if not skip line + const playerOneMove = convertMove(line[0]); + const playerTwoMove = convertMove(line[2]); + // console.log(playerTwo); + const score = calculateScoreForRound(playerOneMove, playerTwoMove); + + currentScore += score; + } + }); + + return currentScore; +} + +/** + * [convertMove description] + * + * @param {String} input [input description] + * + * @return {String} [return description] + */ +function convertMove(input) { + let move = ""; + + let santatizedInput = input.toUpperCase(); + + // console.log(santatizedInput); + switch (santatizedInput) { + case "A": + case "X": + move = "rock"; + break; + case "B": + case "Y": + move = "paper"; + break; + case "C": + case "Z": + move = "scissors"; + break; + } + + return move; +} + +function calculateScoreForRound(playerOneMove, playerTwoMove) { + let score = 0; + switch (playerTwoMove) { + case "rock": + score = 1; + break; + case "paper": + score = 2; + break; + case "scissors": + score = 3; + break; + } + + if (playerOneMove === playerTwoMove) { + // draw + score += 3; + } else if ( + (playerOneMove === "rock" && playerTwoMove === "scissors") || + (playerOneMove === "paper" && playerTwoMove === "rock") || + (playerOneMove === "scissors" && playerTwoMove === "paper") + ) { + // loss player 1 + } else { + // win for player 2 + score += 6; + } + console.log(`P1: ${playerOneMove} P2:${playerTwoMove} = ${score}`); + + return score; +} + +console.log("TestData, Expected 15 got " + processData(splitTestData)); + +console.log("Real Data, got " + processData(splitInputText)); diff --git a/aoc/2022/day2/input.txt b/aoc/2022/day2/input.txt new file mode 100644 index 0000000..9d27e74 --- /dev/null +++ b/aoc/2022/day2/input.txt @@ -0,0 +1,2500 @@ +B Y +A X +C Z +A Z +B Y +B Y +A X +C Z +B Y +B Y +C Z +C X +B Y +C Z +B Y +C Z +A Z +A Z +A X +B Y +A X +C Z +C Y +C Z +C Z +C Z +A X +A X +B Y +A Z +B Z +B Y +A X +A X +C Z +B Y +B Y +B Z +A Z +A X +C Z +B Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +B X +A Z +A Z +C Z +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +B Y +B Z +A X +A X +C Z +B Y +C Z +A X +C Z +A X +C X +A Y +A Y +B Y +A Y +C Z +B Y +C Z +C Z +A X +C Z +A Z +C Z +A X +C Z +B Y +B Y +C Z +B Z +C Y +C Z +B Y +C Z +C Z +B X +A X +C Z +C Z +B Y +C Z +B Y +A Z +B Y +B Z +A Z +C Z +C Z +C Z +A Z +C Z +A X +A X +A Z +C Z +A X +A Z +C Z +A Z +A Y +B Y +A Z +B X +A X +C Z +C Z +B Y +C Y +B Y +B Z +B Y +B Y +C Z +C Z +C Z +C Z +A Y +C Z +B Z +A X +B Y +A Y +C Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +C Z +B Y +C Z +C X +A Y +A X +C Y +B Y +A Z +C Z +C Z +B Y +B Y +A X +B Y +A Y +A X +A X +B Y +A X +A X +B Y +C Z +C Z +B Y +C Z +A Z +C Z +B Z +C Z +A Y +C Z +B Z +C Z +A Y +A Y +C Z +A X +B Y +C Z +A X +B Y +B Y +A X +A X +C Z +B Y +C Z +B Z +C Z +A X +C Z +B Y +B Y +A X +B Z +C Z +B Z +B Y +B Y +A Y +B Z +A Z +C Z +C Z +A X +A X +A X +C Z +B Y +A X +A Y +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +A Z +B Z +C Z +B Y +C Z +C Z +A Y +A X +C Z +B Y +C Z +C Z +B Y +B Y +A Y +C Z +B Y +B Y +A Z +C Z +C Z +C Z +C Z +B Z +C Z +B Y +A X +C Z +B Z +A Z +A X +C Z +A X +A X +B Y +C Z +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +B Z +B Y +C Z +A Z +C Z +C Z +A Y +A Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +A X +C Z +C Z +B Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +A Z +A Y +A X +A X +C Z +B X +A Z +A X +C Z +B Z +C Z +B Y +A Z +C Z +B Y +C Z +C Y +A Y +C Z +B Y +B Y +C Z +A X +C Z +A X +C X +A X +B X +A X +C Z +C Z +C Z +B Y +B Y +C Z +B Z +C Z +B Y +A X +C X +C Z +B Y +A Z +A X +B Y +B Y +C Z +C Z +C Z +B Y +A X +A X +B Y +A X +A Y +C Z +B Y +A X +A Y +B Y +A X +A X +C Z +C Z +C Z +C Z +C Z +A X +A X +B Z +A Y +C Z +A X +C Z +B Y +C Z +A Z +C Z +C Z +A Y +B Z +C Z +A X +B Y +B Y +C Z +A Y +C Z +C Z +C Z +C Z +C Z +B Y +A X +A X +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Z +B Y +B Y +C Z +A X +A Y +C Z +A X +A Y +A X +C Z +A Y +B Z +B Y +B Z +C Z +C Z +C Z +B Z +B Z +C Z +C Z +C Z +C Z +B Y +B Z +A Y +A Y +B Z +B X +A Z +A X +C Z +A X +A Y +A X +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +A X +C Z +A X +A Y +A X +C Z +A Y +C Z +B Y +A X +A Y +A Z +C Z +B Y +B Y +B Z +A X +A X +B Y +C Z +A X +B Y +C Z +C Z +C Z +A X +A Y +A Z +C Z +B Y +C Z +A X +A Z +A Z +B Y +B Y +A X +B Y +C Z +B Z +C Z +B Y +A Z +C Z +A Y +A X +A Z +B Y +A X +A Z +C Z +A Z +C Z +C Z +A X +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +B Y +A Y +C X +A Y +A Z +A X +A Z +B Y +A X +C Z +A Y +B Y +B Y +C Z +B Y +C Z +B Y +B Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +C Z +A X +A X +A Z +A Z +C Z +A Y +B Y +A Y +A Y +B Y +C X +A Y +C Z +C Z +C Z +A Y +A Y +A Y +C Z +A X +B Y +A X +B X +A Y +A Y +A X +B Z +B Y +C Z +B Y +C Z +B Y +C Z +A Z +C Z +A X +B Y +A X +C Z +B Z +C Z +B Y +C Z +C Z +C Z +A X +A X +B Y +B Z +A Z +A X +A X +C Z +A X +A X +C X +C X +C Z +B Y +B Z +C Z +A X +B Y +B Y +A Z +C Z +C Y +A X +B Y +B Y +C Y +A X +A X +A X +A X +A Z +B Y +A Z +C Z +C Z +B Y +B Z +B Y +A Y +C Z +C Z +B Y +A Y +C Z +A X +C Z +C Z +A X +B Y +C Z +C Z +A X +A Z +C Z +A Z +C Z +B Z +A X +A Y +B Y +A X +A Y +A Z +A Y +A X +A Y +C Z +A X +C Z +C Z +A X +A Y +A X +C Z +A Z +C Z +C Z +C Z +A X +B Y +A X +C Z +C Z +C Z +C Z +A X +C Z +C Z +B Y +A Y +A X +A X +C Z +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +A Y +A X +C Z +A Y +C Z +A X +B Z +B Y +A X +B Y +C Z +A X +C Z +C Z +A X +C Z +B X +C Z +C Z +A Y +C Z +A Y +B X +C Z +B Y +C Z +A Z +C Z +A X +C Z +C Z +C Z +C Z +A X +B X +C Z +C Z +B Y +A Z +A Y +C Z +A X +A Z +A X +A X +B Y +A X +C Z +A X +A X +B Y +A X +B Z +C Z +A Z +A Y +A X +B Y +A X +A Z +A X +B Y +B Z +B Y +C Z +B Y +A X +A Y +C Z +A X +B Z +C Z +C Z +A X +A X +A Y +C Z +C Z +C Z +A Y +B Y +A X +C Z +B Y +B Y +A X +A X +B Y +C Z +B Y +A X +A Z +C Z +C Z +C Z +C Z +B Z +C Z +A Z +C Z +A Y +B Y +A Y +C X +C Z +C Z +A Y +A X +B Y +C Z +A X +C Z +A X +A Y +A Y +B Z +C Y +B Y +C Z +B Y +A X +C Z +C Z +C Z +C Z +B Y +A X +B Y +A Y +C Z +B Y +A Z +B Z +C Z +C Z +C Z +C Z +A Y +A X +C Z +A X +C Z +C Z +C Z +C Z +C Z +B X +C Z +B Z +A X +A X +A Y +A X +A Z +B Y +A Y +C Z +C Z +C Z +C Z +C X +A Y +C Z +C Z +B Y +A X +C Y +B Y +C Z +C Z +C Z +B X +A X +C Z +A X +C Z +C Z +C Z +C Y +A X +C Z +A Z +C Z +C Z +B Y +A X +A X +A Z +A Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +A X +C Z +C Z +A X +A X +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A Y +B Z +A Y +C Z +A X +C Z +C Z +B Y +A Y +A X +B Z +A X +C Z +C Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +C Z +B Y +C Z +C Y +B Z +B Z +A Y +C Z +C Z +B Z +B Y +C Z +B Y +C Z +C Z +B Y +C Z +C Z +C Z +A Y +A X +B Y +C Z +C Z +C Z +B Y +C Z +A Y +A X +A Z +A Y +C Z +C Z +C Z +B Z +C Z +B Y +C Z +B Y +A Y +C Z +C Z +A Z +B Y +A X +A X +B Z +A X +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +C Z +C Z +C Z +C Z +C Z +A Y +C Z +A Z +A X +B Y +C Z +C Z +A X +A Y +C Z +B Y +A X +C Z +C Z +A X +A Y +A X +B Z +C Z +A X +C Z +A X +A Z +B Y +C Z +C Z +C X +B Z +B X +B Y +A Z +C Z +A X +B Z +A X +B Y +C Z +B Z +A Z +A Z +C Z +C Z +C Z +C Z +B Y +B Y +A Y +A X +A X +B Y +A Z +A X +C Z +B Z +A X +A X +B Y +A X +C Z +A X +C Z +C Z +C Z +C Z +A X +A X +A Z +C Z +A X +B Z +C Z +B Y +C Z +C Z +A Y +C Z +B Z +C Z +C Z +B Y +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A X +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +A X +B Y +C Z +A X +B Z +A X +B Z +C Z +A X +C Z +B Y +A Z +B X +A Y +C Z +C Z +B X +A Y +A X +C Z +A X +C Z +B X +A X +B Y +A Z +A X +C Z +A Y +C Z +A X +C Z +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A X +B Y +C Z +B Y +A X +C Z +C Z +A X +A X +B Y +C Z +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +A Z +C Z +C Z +C Z +C Z +A X +C Z +A X +A X +B Z +C Z +C Z +C Z +B Z +A X +C Z +A Y +B Y +C Z +A Y +C Z +C Z +A X +A X +B Y +A Z +A Y +A X +B X +B Y +B Z +B Y +A X +C Z +C Z +B Z +B Z +B Z +C Z +C Z +B Y +B Y +B Y +C Z +B Y +A X +A Z +B Z +A X +B Z +A X +C Z +B Y +B X +A X +C Z +A X +C Z +C Z +C Z +B X +B Y +A Y +A X +A X +A Y +C Z +C Z +B Y +C Z +B Z +A X +C Z +C Z +C Z +A X +A Y +C Z +B Z +A X +A Y +A Z +C Z +B Y +B Z +A X +C Z +A X +A X +A Z +C Z +C Z +B Y +A X +C Z +A Y +A Z +A X +A X +C Z +A Y +B Y +C Z +A Z +C Z +B Y +A X +A X +A X +C Y +C Z +A Y +B Z +C X +A X +A X +A X +A X +B Z +B Y +C Z +B Y +A X +B Y +C Z +B Y +C Z +C Z +A X +B Y +A Y +B X +A X +B X +C Z +A Z +A X +B Y +B Y +C Z +A X +A X +B Y +C Z +A X +C Z +A X +A Z +A Z +C Z +A Z +C Z +C Z +C Z +C Z +A Z +C Y +C Z +C Z +A Z +A Y +A X +B Z +C Z +C Z +C Z +A Y +C Z +C Z +C Z +C Z +A Z +B Z +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +B Y +A X +A X +A Z +B Y +C Z +B X +C X +A X +A X +A X +C Z +C Z +A X +B Y +A Z +B Y +A X +A Y +C Z +B Y +C Z +B Y +A Y +B Y +A Y +A X +C Z +C Z +A X +B Y +A X +C Z +C Z +A Y +B Y +B Y +A Z +B Y +C Z +C Z +C Z +B Y +A X +B Y +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +B Y +A X +B Y +A Z +B Y +A X +B X +C Z +A Z +B Y +C Z +B Y +C Z +C Z +C Z +C Z +B X +A X +B Y +B Y +A X +C Z +A X +B Z +B Z +B Z +A X +C X +A X +A X +A X +B Y +B Y +C Z +C Z +A X +C Z +B Y +A X +C Z +A X +C Z +A X +B Y +C Z +C Z +A Y +B Y +C Z +A Z +C Z +A X +C Z +C Z +A Z +A Y +C Z +A X +B Y +B Z +C Z +A Y +A Y +C Z +C Z +B Z +A Z +C Z +A X +C Z +A X +C Z +C Z +C Z +B Y +C Y +B Y +A Y +A X +C Z +B Y +C Z +C Z +C Z +A Z +C X +A Y +C Z +A Y +A Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +B Y +A Z +B Y +A X +A X +B Y +A Z +B Y +C Z +B Z +A X +C Z +A Y +A Y +C Z +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +B X +C Z +A Y +C Z +A X +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A Y +A X +A Z +C Z +C Z +C Z +C Z +C Z +A Z +B Y +B Y +B Y +C Z +C Z +C X +C Z +A X +B Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +A Y +B Y +C Z +B Z +B Y +C Z +B X +C Z +B Y +B Y +B Y +A X +A X +C Z +A Z +C Z +B Y +B Z +C Z +C Z +B Z +B Y +A Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +C Z +A Z +A X +B Y +C Z +B Y +A X +A Z +C Z +B Y +A Z +C Z +B Y +A Z +A X +B Z +A X +C Z +B Y +C Z +A Y +C Y +A X +A Y +C Z +C Z +B Y +C Z +B Y +A Z +C Z +C Z +A X +C Z +B Z +A Y +B Z +A Z +A X +B Y +A Z +A Y +C Z +C Z +B Y +A X +B Y +C Z +A X +B Y +B Y +C Z +A Z +A X +C Z +B X +C Z +C Z +C Z +C Y +A Z +A X +C Z +C Z +A X +B Y +C Z +B Y +C Z +B Z +A Z +C Z +B Y +A X +C Z +C Z +B Z +C Z +A Z +B Y +B Z +C Z +C Z +A X +C Y +B Y +C Z +A X +C Z +C Z +B Y +B Z +C Z +C Z +A Y +A X +C Z +A X +B Z +B Y +A Z +B Z +C X +A X +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +A X +A X +B Y +C Z +C Z +B Y +B Z +B Y +C Z +A X +A X +B Y +A X +B Y +C Z +A X +C Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +A Z +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +B Y +A Z +A X +B Y +C Z +A X +C Z +A X +C Z +A X +C Z +C Z +B Y +A Y +C Z +B Y +B Y +A X +C Z +A Y +A Z +C Z +C Z +C Z +A Y +B Y +C Z +C Z +B Z +C Z +B Z +B Y +A X +A X +C Z +B Z +C Z +C Z +A X +A X +B Z +A X +C Z +C Z +B Y +A X +C Z +A X +B Y +C X +A Z +B Y +C Z +A X +B Y +C Z +A X +B Y +C Z +B X +C Z +A Y +C Z +A X +C X +B Z +C Z +B Y +B Y +B Y +A Y +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +C Z +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +A Z +C X +B Y +C Z +C Z +B Z +A X +A X +B Y +C Z +A Y +B Y +C Z +A X +A Z +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +B Y +B Z +C Z +B Z +A X +C Z +C Z +A Y +C Z +A X +C Z +B Y +C Z +C Z +C Y +C Z +C Z +A Y +C Z +C Z +A Z +A X +B Z +C Z +A Y +A X +B Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +A Y +C Z +A Z +A X +C Z +A X +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Y +A X +B Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +A Z +B Z +B X +A X +A Z +A X +A X +B Y +C Z +C Z +A X +B Y +A Y +C Z +B Z +C Z +A X +B Y +C Z +B Y +A Z +C Z +A Y +C Z +A X +C Z +A Z +B Y +A Y +A X +A X +A Z +C Z +C Z +C Y +C Z +A Y +A X +B Y +A Z +B Z +B Z +C Z +C Z +C Z +C Z +A X +A Y +B Y +C Z +B Y +C Z +A X +B Y +C Z +C Z +A Z +A X +B Y +C Z +A Y +C Z +C Z +C Z +A X +B Y +A X +B Y +C Z +C Z +B Y +C Z +A X +A X +C Z +B Y +B Z +A X +A X +A X +C Z +C Z +B Y +A X +C Z +A X +A Z +C Z +C Z +C Z +C Z +A Z +A X +B X +B Z +A Y +C Z +C Y +B Y +C Z +A Y +A X +B Z +B Y +C Z +B Y +C Z +A X +A Z +A X +C Z +B Y +B Y +B Y +A Z +C Z +C Z +B Y +C Z +B Y +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +A Y +B Z +C Z +C Z +A X +B Y +A X +A X +A Y +B X +A X +A X +C Z +B Z +A X +C Z +A Y +A Z +C Z +A Z +A X +B Y +A X +C X +C Z +B Y +C Z +A X +A X +C Z +A X +B Y +A X +C Z +B Z +C Z +A X +C X +C Z +C Z +A X +C Z +A Y +C Z +A X +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +A Y +A Z +B Y +C Z +C Z +B Y +A Z +A X +A Y +A X +C Z +A Y +A Z +A Y +B Y +C Z +C Z +A Y +C Z +A X +B Y +C Z +A X +C Z +A X +B Y +C Z +C Z +A Z +A X +C Z +B Y +A Z +C Z +A X +C Z +B Y +B Y +C Z +C Z +C Z +C Z +B Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +A X +C Z +C Z +A Z +C Z +A X +C Z +C Z +A X +B Y +A X +C Z +B Y +B Y +A Y +A Y +A X +A Y +A Y +C Z +C Z +A Y +C Z +A Y +B Y +C Z +C Z +C Z +B Y +B Y +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +A X +B Y +A X +C Z +A X +C Y +A Y +B Y +C Z +C Z +C Z +C Z +B Y +C Z +C Z +B Y +C Z +A X +A X +B Y +B X +C Z +B Y +A X +B Z +A Z +C Z +C Z +C Z +C Z +B Y +A Z +C Z +C Z +C Z +C Z +A X +A X +B Y +A Z +C Z +C Z +C Z +C Z +A Z +B Y +A X +B Y +C Z +C Z +B Z +C Z +A Y +C Z +A Y +B Y +C Z +A X +C Z +A X +B Z +B Y +B Y +A X +B X +A X +C Z +B Y +A X +A Z +C Z +C Z +A Z +C Z +C Z +B Y +C Y +C Z +A Z +A Z +C Z +B X +C Z +C Z +B Y +C Z +B Y +B Y +A X +A Y +B Y +A X +B Z +C Z +A Z +A X +A X +A Z +A Z +B Z +A X +B Y +C Z +B Y +A X +C Z +B Z +A Y +B Z +C Z +A X +B Z +A X +A Y +C Z +C Z +C Z +C Z +C Z +A Y +A Y +A X +B Y +C Z +A X +B Y +A X +B Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +B Z +C Z +A X +A Z +A X +A X +C Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +C Z +C Z +B Y +A Z +A X +A Z +C Z +C Z +C Z +C Z +B X +C Z +C Z +A X +C Z +A Z +B Z +B Y +B Z +A Y +B Y +B Y +C Z +A Y +A Y +A Y +C Z +C Z +B Z +A X +C Z +A X +A X +A X +C Z +C Z +A Z +A X +A Y +C Z +C Z +A X +B Z +C Z +A X +C Z +A Z +A X +C Z +C Z +A X +A Z +B Y +A X +B Y +C Z +C Z +A X +B Z +C Z +B Y +C Z +A Z +C Z +A X +B Y +C Z +C Z +A Y +C X +A Y +A Y +C Z +C Z +A X +A Z +B Y +C Z +B Y +C Z +A Y +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A Y +C Z +C Z +B Y +A X +C Z +B Y +C Z +B Y +C Z +B Y +A X +A Y +B Y +C Z +B Z +A Y +C Z +A Y +A Z +C Z +B Y +C Z +C Z +B Y +A Y +A Y +C Z +C Z +A Y +C Z +C X +C Z +C Z +C Z +A X +C Z +B Y +B Y +C Z +C Y +B Z +C Z +B Y +A X +A X +B Y +C Z +A X +C Z +B Z +C Z +A X +B Y