Files
AdventOfCode/Days/Day2.cs

2616 lines
23 KiB
C#

using Spectre.Console;
namespace AdventOfCode.Days;
public enum Choice : long
{
Rock = 1,
Paper = 2,
Scissors = 3
}
public enum Outcome : long
{
Lose = 0,
Draw = 3,
Win = 6
}
public class Day2 : Day
{
public override int Number => 2;
public override string Name => "Rock Paper Scissors";
public override void RunPart1(bool display = true)
{
long score = 0;
foreach (var line in Input.ReadAllLines())
{
var adversaryChoice = AdversaryInputToChoice(line[0]);
var selfChoice = SelfInputToChoice(line[2]);
score += (long) selfChoice;
score += (long) ComputeOutcome(adversaryChoice, selfChoice);
}
if (display)
{
AnsiConsole.MarkupLine($"[green]Total score: [yellow]{score}[/][/]");
}
}
public override void RunPart2(bool display = true)
{
long score = 0;
foreach (var line in Input.ReadAllLines())
{
var adversaryChoice = AdversaryInputToChoice(line[0]);
var desiredOutcome = InputToOutcome(line[2]);
var selfChoice = ComputeChoiceFromDesiredOutcome(adversaryChoice, desiredOutcome);
score += (long) selfChoice;
score += (long) desiredOutcome;
}
if (display)
{
AnsiConsole.MarkupLine($"[green]Total score: [yellow]{score}[/][/]");
}
}
private Outcome ComputeOutcome(Choice adversary, Choice self) => (adversary, self) switch
{
var (x, y) when x == y => Outcome.Draw,
(Choice.Rock, Choice.Paper) => Outcome.Win,
(Choice.Paper, Choice.Scissors) => Outcome.Win,
(Choice.Scissors, Choice.Rock) => Outcome.Win,
_ => Outcome.Lose
};
private Choice ComputeChoiceFromDesiredOutcome(Choice adversaryChoice, Outcome desiredOutcome) =>
(adversaryChoice, desiredOutcome) switch
{
(var x, Outcome.Draw) => x,
(Choice.Rock, Outcome.Win) => Choice.Paper,
(Choice.Paper, Outcome.Win) => Choice.Scissors,
(Choice.Scissors, Outcome.Win) => Choice.Rock,
(Choice.Rock, Outcome.Lose) => Choice.Scissors,
(Choice.Paper, Outcome.Lose) => Choice.Rock,
(Choice.Scissors, Outcome.Lose) => Choice.Paper,
_ => throw new ArgumentOutOfRangeException()
};
private Choice AdversaryInputToChoice(char input) => input switch
{
'A' => Choice.Rock,
'B' => Choice.Paper,
'C' => Choice.Scissors,
_ => throw new ArgumentException("Invalid input")
};
private Choice SelfInputToChoice(char input) => input switch
{
'X' => Choice.Rock,
'Y' => Choice.Paper,
'Z' => Choice.Scissors,
_ => throw new ArgumentException("Invalid input")
};
private Outcome InputToOutcome(char input) => input switch
{
'X' => Outcome.Lose,
'Y' => Outcome.Draw,
'Z' => Outcome.Win,
_ => throw new ArgumentOutOfRangeException(nameof(input), input, null)
};
#region Input
public const string Input =
"""
B Z
B X
C Y
B Y
B Y
A X
A X
B Z
A Z
B Z
B Y
B X
C X
B Y
A Z
B Y
A X
B X
C Y
B Y
B Y
C Y
B X
B X
C X
B Y
B Y
B Y
C Y
C X
B Y
C X
C X
B Y
B Z
C Y
B Y
B Z
B X
B Y
B Y
C Y
B Y
C Y
C Y
A Z
B X
C X
B Y
B X
C X
A X
B Y
C Y
B X
C X
C Y
B X
B Z
B Y
B X
C Y
B X
B Y
B Y
B Y
B Y
A X
A Z
B Z
B Y
C X
B Y
B Y
C Y
C Z
C Z
C X
B X
C Z
B Y
B Y
C X
C Z
C X
A Z
C Y
B Y
B Y
B Y
C Y
C Y
C X
C X
C Z
A X
B Y
C X
B Z
B Y
C X
B X
B Z
A Z
C Y
B Z
C X
C X
B Y
B Y
B Y
C Y
C X
B X
B Y
A Z
A Z
C Y
B Y
C Y
C Y
C Y
B X
A Z
C Y
C Y
A Z
A Z
B X
B Y
B Z
A Z
B X
B Y
C Z
C Z
B Z
B Y
B X
A Y
C Z
C X
A Z
A Z
B Y
B Y
C Y
C Y
B Y
B Y
B Y
A Z
C Y
C Z
C X
A Z
B X
B Y
A Y
A Y
B Y
B Y
C X
B Y
B Y
C Z
B Y
B Y
A Z
C Y
B X
C X
A X
C X
B Y
B X
A Z
C X
C Y
A Z
B Y
A Z
B X
B X
A Z
B Y
C X
C X
A Z
A X
C X
C X
C X
B Y
C Z
C Y
C X
B Y
B Y
B Y
A X
A Z
C Y
B Y
B Y
A X
C Y
C Z
C Y
C X
B Y
B Y
B Y
B Y
A Z
B Y
A Z
B X
B Y
B Y
B X
C Y
A X
A Z
B Y
C Y
C Y
B Y
B Y
C X
B Y
B X
A Z
B Y
B Y
C Y
B Y
B Y
B Y
A X
B X
B Z
C Y
B Z
C X
C X
B Z
B Y
A Z
A Z
B Y
C X
A X
C Y
B Y
B Y
A X
B Y
A Y
C Y
B Y
C X
B Y
A Z
B Z
C Y
B Y
B Y
C X
B Y
B Y
B Y
C Z
A X
B Y
B X
C X
C Z
C Z
C Y
C Y
A X
C Y
B Y
A X
C X
A Z
C X
B Y
C Z
C Z
A Z
A X
C Y
C X
B Y
C Z
B Y
C Y
C X
C Y
B Y
B Y
B Y
A X
A Z
B Y
B X
B X
B Y
B Y
B Y
A Z
B Y
B Y
A X
A X
A Z
A Z
B X
C Y
A Z
B Y
B Y
C Z
C X
C Y
A Z
C Y
C Y
C Y
C Y
C X
A Z
C Z
A Z
C Y
C X
B Y
B Y
C Z
B X
B Z
C X
A Y
C Y
B X
B X
B Y
C Y
A Z
A Z
B X
B Z
B X
C Y
A X
A X
C Z
B Y
C Y
C X
B Y
A Z
B Y
C Y
B Z
C Z
C X
B Z
C Z
B Z
A X
C Y
A Z
B Y
B Y
B Y
B Y
B Y
B Y
A Z
C Z
B X
C X
C Y
C Y
B Y
C X
C X
A Y
C Y
C Y
A Z
C Z
B Y
B X
C X
B Y
C X
B Y
B Y
C X
B Y
B Y
B Y
A Z
C Y
B Z
B Y
C X
B Y
C X
A Y
A Z
B Y
B Y
B Y
A Z
B Y
B Y
B Y
B Y
B Z
C Y
B Z
B Z
A Z
B Y
B Y
C X
A X
B Y
A Z
C X
C X
B Y
B Y
A X
B Y
B Y
C X
B Y
C X
B Y
B Y
B Y
B Y
A X
B Y
B Z
B Y
A Z
C X
C X
C Y
A Z
C Y
B Y
B X
A X
B Y
A Z
B Y
C Y
B Y
B Y
C Y
C X
A Z
A X
A Z
C Z
B Y
B Y
C Y
B X
C X
B Y
A Z
B Y
C X
A X
C X
C Y
C Y
B X
B Y
B Y
C Z
B Y
C X
A Z
C Z
C Y
A Z
C X
C Y
C Y
C X
B Y
B Y
C Z
A Z
B Y
A X
B Y
A X
A X
C Y
C X
A Z
B Y
C Y
C X
B Y
B Y
B Y
B X
B X
A X
C X
B Y
C Y
A Z
A Z
A Z
B Y
A Z
B Y
C X
B Y
C X
C Y
A Z
B Y
B Z
A Z
B Y
A Z
B Y
B Y
C Z
B Y
B Y
A Z
A X
C Z
C Z
B Z
B Y
A Z
B Y
B Y
B Y
B Y
C Z
A Z
C X
B X
B Y
A X
A X
B Y
A Z
A X
C Y
B Y
C X
A Z
B Y
C Z
C Y
B Y
A X
C Y
B Y
B Z
A Y
B Y
B Y
A Z
B Y
C Z
C X
B Y
A Y
C Z
B X
A X
B Y
B Y
B Z
B Z
C Y
B Y
B Y
A Z
A Z
B Y
B X
C Y
C Y
B Y
B Y
B Z
B Z
B Y
C Y
A Z
B Y
A Z
B Y
B Y
A Z
A Z
C X
C Z
B Y
C X
B X
A Z
B Y
B Y
C X
B Y
B Y
B Y
B Y
B X
B Y
A X
B Z
A Z
C Z
B X
A Z
C Y
C Y
A Z
B Y
C Z
C Z
C Y
B Y
B Y
B Y
A Z
B Y
B X
C X
B Y
B Y
B Y
B Y
C Y
B Y
C Y
B Y
C Y
C X
A Z
C Y
C Z
C Z
B X
C Y
B Y
B X
C Y
B Y
B Y
C Y
C X
C X
A Z
B Y
C X
A Z
C Z
B Y
B Y
C X
C X
B Y
B X
C Y
B Y
B Y
A Z
A Z
C Z
A Z
B Y
C X
C X
B X
B Y
B Y
B Z
B Y
B Y
B Y
B Y
B Z
B Y
C Y
C Z
B Y
C Y
C Y
C Y
C Y
A Z
A Z
C Y
C Y
A X
B Y
C Y
A X
C X
C Y
A Z
B Y
B Z
A X
B Y
B Z
B Y
B Y
B Z
C X
C Y
B Y
B Z
B X
A Z
B Y
C Y
B Y
B Y
A X
C X
B Y
C X
B Y
C Y
A X
A X
A Z
C Y
B Y
C Y
C X
B X
C X
C X
A X
A Z
B Y
B Y
B Y
A Z
B Y
B Y
B Y
B Y
B Y
B Y
B X
B Y
C Y
B Y
A Z
B Y
C X
C Y
B Z
C Z
B Y
A Y
C X
B Y
B Y
B Y
C X
A Y
C Z
B Y
C X
C Y
C Y
C Y
C X
C Y
B Z
B Y
C Y
C X
B Y
B Y
B X
C Y
B X
C Z
B Y
C X
B Z
C X
B Y
C X
B Y
C Y
C Y
A Z
C Y
C X
B Y
C X
B X
A Z
B Y
A Z
A Z
A Z
C Y
B X
A Y
C Y
B Y
B Y
C Y
C Y
C X
B X
A X
A Z
C X
A Y
B X
C Z
B Y
B Y
B X
C X
B Y
B Y
B Y
B X
B Y
C X
B Y
B Y
C Z
C Y
B Y
C Y
B Y
A Z
C Z
A Y
B Y
B Y
B Y
C Y
C Y
C Y
B Y
C Z
B Y
C Z
A Z
A Z
C Z
C Y
C Z
C Y
A Z
C X
B X
B Y
C Y
B Z
C Z
C X
B Y
A Z
B Y
C X
B Z
A X
B Y
A Z
C Z
C X
C X
C Y
B Y
B Y
A Z
A Z
B Y
B X
A Z
B Y
C Y
A X
C Z
B Y
B X
B Y
C Y
C Z
B Z
A Z
B Y
A X
C X
B Y
A Z
C X
B Z
C Y
C Y
C X
C X
C Y
B Y
B Y
B Z
B X
C X
B Z
C X
B X
C Z
C Z
C X
B Y
C Y
C X
B Y
A Z
C Y
C Z
C Z
C Y
B Y
A X
C Z
C X
B Y
C X
C Z
B Y
C Y
B Y
C Y
A Z
B Z
C Z
C X
B Z
B Z
B Y
A Y
C Y
C Y
B X
B X
B Y
B Y
B Y
C X
B Z
B Y
B Y
B Y
C X
A X
C Y
A X
B Y
B Y
B Y
B Y
B Y
C Y
C Y
B Y
B Y
B Y
B Y
C Y
B Y
C X
B Y
B Y
C X
A Z
A X
C Y
C Z
B Y
C X
B Y
B X
A Z
B X
B Y
B Y
A Z
B Y
B Y
B Y
B Z
A Z
A X
B Y
A Z
C Y
B Y
C X
B Y
C Y
B Y
B Y
C X
C Y
A Y
C X
C Y
B Y
A Y
A Z
C Z
A Y
A Z
B Y
C Y
C Y
B Y
B Y
B Y
B Y
A Z
B Y
B Y
B Y
C X
C X
B Y
C X
B Y
A Z
B Y
B X
C Z
C Y
A Y
B Y
C Y
B Y
C Y
C Y
C Y
C X
C Y
B Y
B Y
C Y
B Y
C Y
A Z
A X
B Y
A Z
B Y
C X
C X
B Y
C Z
B Y
B Y
C Y
B Y
C Z
A Y
B Y
C Y
B Y
A Z
C Y
B Z
C Y
C Y
C Z
B Y
C X
B Z
B Y
B Y
B Y
C Z
B Y
B Y
B Y
A Z
C X
B Z
B Y
B Y
C Y
B Y
C X
B Y
B Y
C Y
C X
C Y
B Y
B Y
C Y
B Y
A Y
B Y
A Z
B Y
B Y
B X
A Z
B Y
B Y
C Y
C X
C Z
A Z
A Z
C X
B Y
C Y
B Y
C X
B Y
B Y
C Y
C X
B Y
B Y
B Y
B Y
B Y
C X
B Z
B Z
A Z
B Z
B Y
B Z
B Y
C Y
A Z
A X
B Y
C Z
B X
A X
C Y
B Y
B Y
C Y
B Y
C Y
B Y
A Z
B Y
B Y
A Z
B Y
B Y
A Z
B Y
B Y
B Y
B Y
C Y
B Y
A X
A X
B Y
B Y
A Y
C Z
A Z
A Z
B Y
A Z
C Y
B Y
B Y
B Y
B Y
C Y
B Y
A X
B X
B Y
B Y
B Y
B Y
B X
C Y
B Y
B Y
B X
C Y
A Y
B Y
B Y
B Y
A X
B Z
C X
A X
C Z
B Y
B Y
B Y
C X
B Y
B Y
B Y
B Y
C Y
B Z
B Z
B Y
B Z
B Y
B Y
C Z
C Y
B Y
C Z
C Z
B Y
C X
A Y
B Y
B Z
A Z
B Y
C X
B Y
B Y
C Z
A Z
B Y
B X
B Y
C Y
B Y
B Z
B Y
B Y
C X
C X
C Z
B Y
B Y
B Y
A Z
A X
B Y
A Z
B Y
B Y
B Y
B Z
C X
C Z
B Y
B Y
B Y
C Z
B X
C Z
A X
B Y
C Y
B Y
A Z
A X
C X
B X
A Z
C X
B Y
C Y
B X
A Z
C Y
C Y
B Z
C X
B Y
C X
C Z
C Y
B Y
C Z
B Y
B Y
C X
B Y
B Y
B Y
B Y
B Y
B Y
C X
B Y
B Y
B Y
A Z
B Y
B Y
C Z
B Y
B Y
B Y
C X
A Z
B Z
C Y
C Y
B Y
A X
C Y
B Y
C Z
B Z
B Y
B Y
C Y
B Y
B Y
B Y
C Z
A X
B Y
C Y
A X
B Y
B Y
A X
B Y
A Y
C X
A Z
A Z
C Y
B Y
C Z
C Y
C Y
C Z
A Z
A X
C Z
B Y
C X
A Z
C X
B Y
B Y
B Y
C Z
C Y
C X
C Y
A Y
C X
A Z
A Z
B Z
C X
B Y
B Y
C X
A Z
C Z
C Z
B Y
B Y
A Y
C X
B Z
B Y
B Y
C X
C X
C Z
C Z
B Y
B Y
B X
B Y
B Y
C Z
C Y
C Z
B Y
B Y
B Y
C Y
B X
C X
A Z
C X
C X
C Y
B Y
B Y
C Y
B Z
B Z
C X
C Y
B Y
B Z
B Y
B X
A Z
C X
B Z
A Z
C X
B Y
C Y
C Y
B Y
B Y
B Y
B X
A X
B Y
A X
A Z
C Y
B Y
B Y
B Y
B Y
B Y
C Z
B X
B Y
C X
A Z
B Y
B Y
A Z
B Y
C Y
C Z
C X
C Y
B Y
B Y
B Z
B Y
A X
C Y
B Y
A X
B Y
C X
A Z
B Y
C X
A Z
B Y
C X
C Y
C X
B Z
C Z
B Y
C Y
C X
C Y
B Z
B X
A X
C Z
B Y
B Y
C Y
B Z
C X
C X
B Y
B Y
C Y
B X
B Y
C Y
B Y
B Y
A Z
B Y
B Y
B Y
A X
A Z
B Z
B Z
B Y
A Z
B Y
C Y
B Y
C X
B X
B Y
B Y
B X
C Z
B Y
C Z
C X
B Y
C Z
B Y
C Y
B Z
C Y
C Y
C Z
C Z
A X
B Y
A Z
B Y
B X
A X
B Y
B Y
B Y
C Y
B Y
B X
B Z
C Z
B X
B Z
B Y
C Y
B Y
B Z
C X
A Z
B X
B Z
C X
C Z
B Y
A Z
C X
C Y
B Z
B Y
C Y
B Y
C Y
B Y
B Y
B Y
C Y
B Y
C Y
C X
C Z
B Y
B Y
B X
C Z
B X
A Z
C Y
A Z
C X
C Y
B Y
C Z
B Z
C Z
C Y
C X
B Y
C Z
C X
B Y
B Y
B Y
B X
B Y
B Y
C X
A X
B Z
C X
C Z
B Y
C Y
B Z
C Z
B Y
C X
B Y
B Y
A Z
C Z
B Y
C Z
C X
B Y
B Y
C X
C X
C Y
B Y
A X
A Z
B Y
C X
B Y
B Y
C Y
B Y
A Z
A Z
C X
C Z
C X
C X
A X
B Y
B Y
C Y
C Z
C Y
B Z
C Y
B Y
B Y
B Y
C Y
B Z
B Y
B Y
B X
C Y
C Y
B Y
A X
C X
A X
C Z
C Y
A Y
B Y
B Y
B Z
C X
C X
B Y
A X
B Y
A Z
B Y
A Z
C X
C X
B Y
B Y
B Y
B Y
A X
B Y
B Z
C Y
C X
C Z
C Z
B Y
C Z
B Y
B Y
C X
B Y
A X
A Z
B Y
A Z
C X
B Y
C Y
B Z
C Z
B Y
B Y
B Y
B Y
C Y
C Z
B X
B Y
A Y
C Y
B Z
B Y
C Y
A Z
B Y
B Y
C Y
C Y
A Y
C Y
A Z
C Y
B X
B Y
B Y
C Y
A Z
C Y
A Z
B Y
B Y
B Y
B Y
A X
C Y
A Z
B Y
B Y
B Y
B Y
B Z
C Z
C Y
C X
B Y
C X
B Y
B Y
B Y
B Y
A Z
B Y
C Y
C Y
A Z
A X
B Y
C Y
C Y
B Y
C Y
C Y
C Y
C Z
A Z
C X
C Y
C X
B Y
B Y
C X
C Z
C X
C Z
B X
B Y
C Z
B Z
A Z
C Y
B Z
C Y
B Y
A X
B Y
A Z
B Y
A X
B Y
B X
B Z
B X
B Y
B Y
B Y
C X
B Y
B X
C X
B Y
B Z
B Y
C Y
B Y
B Y
C X
A Z
C X
B Y
C Y
C Z
B Y
C Z
B Y
B Y
B Y
B Y
C Z
C X
C Y
C Z
B X
A Z
A Z
B Y
B Z
C Y
A X
B Y
B Y
A Z
B Y
B Y
B Y
B Y
A Z
C Z
B Z
C Y
A Z
C Y
B Y
B Y
B Y
B Z
B Y
C X
C Z
B X
C X
B Y
C Z
C X
B Y
A Z
A Z
B Y
B Y
B Y
C X
A Y
B Y
B Y
A Z
A Z
C Z
C Y
B Y
B Y
A X
B Z
A X
B Y
A Z
B Y
C X
B Y
A Y
B Y
B Z
B Y
B Z
B Y
B Y
C Y
C Y
B Y
C X
C Z
B Y
B Y
B Y
C Z
A Z
C X
B Y
B Z
B Y
C Y
B Y
C X
B Y
B Y
C Y
B Y
B Y
B Y
B Y
B Y
B Y
B X
B Y
B Y
C X
B Y
B Z
A Z
A Z
C X
B X
B X
C Y
C Z
B Y
C X
A X
B Y
C X
C Z
C X
B Y
B Y
C Y
B Y
B Y
B Y
A Z
C Z
C X
B Y
B Y
A X
B Y
C Y
B Y
B Y
C Y
B X
B X
A X
C Y
C Z
C Y
B Y
B Y
C X
A X
A X
C X
B Y
C X
B Y
B Y
B Y
C Y
A Z
B Z
A Z
B Y
B X
C Y
B Z
B Y
A Z
B Y
C Y
B Y
C Y
A X
B Y
B Y
B Y
C X
A Z
C Y
B Y
B Y
B Y
C X
B Y
C Y
B Y
B X
C X
B Y
B Y
C Y
C X
C Z
C Z
B Y
B Y
B Y
B X
C X
B X
A Y
A Z
C Y
A X
B Y
B Y
B Y
A Z
C Y
C X
C Y
C Z
A Z
B Y
B Y
B Y
B Y
A Z
B Y
A Z
B Y
B Y
C Y
C Z
C Y
A Z
C Y
B Y
C Y
B X
B Y
A X
C Z
C Z
A X
C X
C Z
C X
C X
B Y
A X
A Z
C Y
B Y
C X
B Y
B Y
B X
C Y
C Z
B Y
B Z
A Z
C Y
B Y
A Z
B Y
C X
C X
B Z
C Y
B X
B Y
C Y
B Z
A Z
C X
C Y
C X
C Z
B Z
C Z
B Y
B X
B Y
B X
B Y
B Y
B Y
B Y
C X
C X
C Y
B Z
C X
B Y
B Y
B Z
C Z
C Y
B Y
B Y
B Y
C X
B Z
B Y
B X
B Y
C Y
C X
C Z
C X
C Y
B Y
B Y
B X
B Y
C X
B X
A X
B Y
C Y
B Y
A X
C Y
B Z
B Z
C X
C Z
C X
B Y
C Y
C Y
B Y
C Z
B Y
C Y
B Y
C Y
A Z
B Z
C X
C X
B Y
B Y
B Z
B Y
B Z
A X
C X
C X
B Y
C X
A Z
C Y
B Y
A Z
C Z
B X
C Y
C X
C X
A Z
B Y
B Y
C Z
B Y
A Y
C Y
B Y
B X
B Z
C X
B Y
B X
C Z
B Y
B X
B Y
B Y
B Y
A Z
A Z
B Z
A Z
C Y
C Z
B X
C X
A Z
C X
B Y
B Y
A X
B X
B Y
B X
B X
A Y
A Z
C X
B Z
B Z
C Y
C Y
B Y
B Y
B Y
A Z
A Z
B Y
B Y
C Y
C Y
C Y
C Z
C X
C Y
B Y
B X
B Y
A Y
A X
C Y
B Y
A Z
B Y
B Y
C X
C X
B Y
B Y
C Y
A Z
B Y
C Y
C Z
C Z
C Y
A Y
B Y
B Y
C Y
B X
C Z
C Z
C Z
B Y
B Y
B Y
C Y
A Z
B Y
A Z
B Y
A Z
C X
C Z
C Y
B Y
A Z
B Y
B Y
C Z
B Y
C X
B Y
C Y
C Y
B Y
B Y
A X
C Z
B Y
C Y
C X
B Y
B Y
B Y
B Z
A Z
B Y
B Y
B Y
A Z
B Y
A X
B Y
B Y
B Y
C Y
C X
C Y
A Z
B Y
C Y
B Y
C Y
C Y
C Y
A X
C Z
B Y
B Y
C Z
B Y
B Y
C Z
B Z
B Y
C Y
B Y
B Y
B Y
B Y
B X
C X
C Y
B Y
A Z
B Y
A X
B Y
B Y
B Y
B Y
C Z
C Z
B Y
A Z
B Y
C X
C X
C Y
B X
A X
B X
B Y
C X
C Z
C Y
C Y
B Y
C Z
B Y
B Y
C Z
A X
B Y
C Z
B Z
B Y
C X
C X
B Y
B Y
B X
C Z
A Z
A X
B Y
C X
B Y
B Y
C Z
B Z
C Y
B Y
B X
C X
C Z
B Z
B Z
C Y
B Y
A X
B Y
B Y
C X
B X
A Z
B Y
A Z
B Y
B Y
A Z
C X
C X
B Y
B X
B Y
A Z
C Y
C Z
B Y
B Y
A X
B Y
C Y
C Y
B Y
A X
B Y
B Y
A Z
C X
C X
C Y
B Y
A X
B Y
B Y
C Y
B Y
B Y
B Y
B Z
B Y
C Y
C Y
B Y
C X
C X
B Y
C Y
B Y
C X
B Y
B Z
B Y
A Z
A Z
C X
A Z
A Z
B Y
B X
C Z
B Y
B Y
B Y
B Y
B Y
C X
C Y
B Y
A X
C X
C X
C Y
B Y
C X
C X
C Z
B Z
C Y
C X
B Y
B Y
C X
B X
C Z
B Y
B Y
C Y
A Z
C Y
C X
C Y
B Y
B Y
C X
C Y
C Y
C X
B Z
B Z
B Y
B Y
C Y
B Y
C X
A Z
A X
C Z
B Y
C Y
C Y
B Y
B Y
C Y
B Y
""";
#endregion
}