VTRQE7TUTF5CLFUPCFURXGT3SUHNNVABFDLI4LF76RIUW2QV5NUQC
B Y
A Y
B Z
A Z
A Y
B Z
C X
C X
C X
C Y
C Z
B Y
C Y
C Z
A Y
B Y
C Y
B Y
B Y
B Y
C X
B Z
A X
A Z
C Z
C Y
C Y
B Y
B X
C Z
B Y
B Y
C Y
B Y
B Z
B Z
B Y
A Y
A Y
B Z
B Y
B Y
B Y
C Y
A Y
B Y
C Z
B Y
B Y
A Z
B Y
A Y
B Y
B Z
C Y
C Z
A Z
C Z
B Y
A X
C Z
A X
A Z
B Y
B Y
A Y
C Z
B Y
B Z
B Z
B X
C Y
B Y
A Y
A Y
B Y
A Z
B X
B Y
B Y
C Y
C Z
A Z
B Y
A Y
B Z
B Y
B Y
B Y
C X
C Y
B Y
B Y
B Z
B Y
C X
B Y
B Y
C Z
C Z
A X
A X
A X
A X
B Y
C Z
B Z
B Y
C Z
B Y
B Z
B Y
C X
B Y
C X
C Z
B Z
C Z
C Y
B Y
B Y
A Z
C Z
C Y
C Y
B Y
B X
C Y
B Z
C Z
C Z
A Z
B Y
B Y
B Z
B Y
B Y
C X
A Z
A Y
B Y
C Y
B X
C Y
C X
C Y
A Y
B Y
A Y
A Z
C Z
C Z
A Z
C Y
B Y
C Z
C Y
B Y
B Y
C X
B Y
B Y
C Y
C X
B X
C Y
A Z
B Y
A Z
C Y
C Z
B Y
A Z
C X
C X
B Y
B Y
C Z
B Y
A Y
B Y
A Z
A X
A Y
B Y
B Y
A Y
C Z
B Z
B Y
B Y
B Y
B Y
C X
C Z
C Y
B Y
A Y
A Z
C Y
B Y
B Y
B Z
B Z
B Z
A Y
B Z
B Y
C Y
B Y
C X
C Y
C Y
B Y
A Y
A Z
B Y
B Y
A Y
C X
C X
B Y
A Z
A X
C Y
C Y
C Y
C X
C Y
B Y
B Z
B Y
B X
A Z
B Y
B Z
A X
B Y
C Z
B Y
B Z
B Y
B Y
B Y
B X
C Z
C Z
A Y
B Y
C Y
A Y
C X
C Z
A Z
C Y
B Y
B Y
C Z
A Z
C Y
C X
C Z
B X
B Y
C Y
B Y
C X
B Y
A X
B Y
B Y
A Z
B Y
B Y
C X
B Y
A X
A Y
B Y
A Y
C Y
C X
C X
B Z
B Y
C Y
C Y
C Y
B Y
A Y
C Y
B Y
B Y
B Y
B Y
A Z
B Y
B Y
A Z
B Y
C Z
C Y
B Y
B Z
A Y
B Y
A Z
C Z
B Y
C Z
B Z
B Z
A X
A Z
C Z
B Y
A Y
C Z
C Y
B Y
B X
B Y
C Y
C Y
C Y
C X
C Y
B Y
B Y
C Y
B Y
C Z
C Z
B Y
A Y
C Y
B Z
C X
C Y
B Y
B Y
B Y
C Z
B Z
B Y
A Y
B Y
A Z
B Y
B Z
B Y
B Z
B Y
B Z
C Z
C Z
A X
A Y
B Y
C Z
C Y
B Z
A Y
A X
B Y
B Y
B Y
B Z
B Y
B Y
C Y
B Y
B Y
C Y
B Y
A Z
C Z
C Z
C Z
A Z
B Y
B Z
B Y
A Z
B Y
B Y
B Y
B Y
B Y
A X
C Y
B Y
C Z
B Y
B Y
B Y
C Y
A Z
B Y
B Z
B Y
B Y
B Y
B Y
B Y
C Y
B Z
A Z
C Y
C X
C X
B Y
C Z
B Z
B Z
B Y
B Y
B Y
A Z
B Z
A Z
B Z
A Z
B Y
B X
B Y
C Z
C Y
B Y
A Z
A Z
B Y
B Y
B Y
B Y
A Z
B Z
B Y
B Y
B Z
B Y
C Z
B Y
C Y
B Y
C Y
B Y
A Z
B Y
A Z
C Z
C Y
A Z
A Y
A Y
A X
A Y
B Y
B Z
A X
C X
C Z
B Y
A Z
A X
B Y
B Y
B Y
B Z
C Y
C X
B Z
B Y
B Y
B Y
B Y
B Y
B Y
A Z
C Y
B Z
B Y
B Y
B Y
A X
B Z
A Y
C Z
B Z
B Y
B Y
C Y
A Y
C Y
B Y
B Y
A X
C X
B Z
C Y
B Y
B Z
C Y
B Y
B Z
B X
B Y
A Z
B Y
B Z
B Y
B Y
A Z
A X
A Z
B Z
A X
C Y
B Z
B Y
B X
A X
C Y
C X
A Y
B Z
B Y
A X
A Z
C X
C Z
B Z
C X
C X
B Y
A Y
B Y
B Y
C Z
A X
C X
B Y
B Y
B Y
B Y
C X
B Z
B Y
B Y
C X
B X
B Y
C X
A Z
A Y
B Y
B Y
B Y
C Z
B Y
C X
C X
B Z
B Z
B Z
B X
B Y
C Y
B Z
B Y
B Y
B Y
B Z
B Y
C Y
B Y
B Y
B Y
B Y
B Z
C Z
A Y
C Y
B Y
B Y
A Z
C Z
B Y
B Y
A Y
B Y
C Z
C Z
B Y
A Y
A Y
C Y
B Z
B Z
C X
B Y
C X
B Z
C Z
A Z
A Y
B Z
C X
B Y
A X
A Z
A Y
B Y
B X
B Z
A Z
B Z
A X
A X
A Y
B Y
C Y
B Y
B Y
C Z
B Y
A X
B Y
C Y
B Z
C X
B Y
B Y
B Z
A Z
B Y
C Z
B Y
C Y
B Y
A Y
B Y
B Y
A Z
A Y
C Y
B Y
B Z
C Y
B Y
B Y
C Z
B Y
C Z
A X
A Z
B Y
B Y
C Z
B Y
B Y
C Y
A X
C Z
B Y
A Y
B Y
A X
A Z
B Z
B Z
B Y
B Y
C Y
A Y
C X
B Y
A Z
C Y
C X
A Y
A Z
C X
C Z
A Y
B Y
B Y
C X
B Y
A Y
B Z
A X
C Z
A X
B Z
A Z
A Z
B Z
B Y
B Y
B Y
B Y
C Y
B Y
A X
A Y
A Y
B Y
B Y
C Z
A Y
B Z
B Y
C Y
A X
B Y
A X
A X
A Z
C Y
A Z
C Z
B Y
B Y
B Y
A X
B Z
C Z
A X
B Y
B Y
B Y
B Y
B Y
B Y
C Y
B Y
B Y
C Y
C Y
C Z
A Y
C Y
B Z
B Y
C Y
B Y
C Y
A Y
B Y
B Y
B Y
B Z
B Z
B Y
B Y
B Y
B Y
B Y
B Y
C X
A Z
A X
B Y
B Z
A Z
A Z
B Y
B Y
A Z
A Y
A Z
A Z
A Y
B Y
B Y
B Y
B Y
C X
B Y
B Y
B Y
B Y
B Z
B Z
B Y
C Z
A Z
A Y
B Y
B X
C Y
C Y
A Z
A X
B Y
A X
B Y
C Z
B Y
C X
B Y
B Y
B Y
C X
C Y
B Y
B Y
B Y
A Y
B Y
C X
B Z
B Y
B Y
C Z
B Y
B Y
A Z
B Z
B Y
B Z
B X
A Y
B Y
B Y
B Y
B Y
C X
C Y
B Y
A Z
A Y
B Y
B Y
B Y
B Y
B Y
B Z
C Z
A X
B Y
A Y
B Y
B Y
B Y
B Y
B Y
A Y
B Z
B Y
B Y
C Y
A X
A X
B X
C Y
B Y
A Y
B Y
B Z
B Y
C Y
B Z
B Z
A Y
A Y
C Z
B Y
C Z
C X
A Y
B Y
A Y
A X
B Y
C Y
A Z
B Y
B Y
B Y
A Z
B Y
A X
C X
A X
B Z
C Y
A X
C Y
A Z
C Y
B Y
B Y
B Y
B Y
C Y
C Z
A Z
B Z
B Z
C Z
B Y
A Y
B Z
B Z
A Y
B Z
C Z
C Y
C X
C Z
C X
B Y
A X
B Z
B Y
A X
B Y
B Y
B Z
C Y
C Z
C Y
B Y
B Y
B Z
A X
B Y
A X
B Z
A Z
A Z
B Y
C Y
C Y
C Y
B Y
A Z
B Z
B Z
C Y
A Y
A Y
A Z
B Y
A X
B Z
C X
B Z
B Y
A Y
A Y
C Y
A Z
B X
A X
C Y
B Y
B Y
C Y
B Z
C X
C Y
B Y
C Y
B Y
B Y
C Y
B X
A Z
B Z
B Y
A Z
B Z
B Y
A Z
C Y
C Y
B Y
C Y
B Y
B Y
B Y
B Y
B Z
B Y
C Y
C Z
B Y
B Y
A Z
B Y
B Z
A Y
A Y
C Y
A Z
C Y
B Z
B Y
C Y
B Z
C Y
A Z
B Y
B Y
B Y
B Y
C Z
A Y
A X
C X
A Y
C Y
C X
B Y
C Y
A Y
B Y
C Y
B Y
A X
B Y
B Y
B Z
C Y
C Y
A X
B Z
A Z
B Y
B Y
B Y
B X
B Y
B Y
C Y
B Y
C X
A Y
B Y
B Y
A Z
C X
A X
A X
C X
B Y
C Z
B Y
A Z
C Y
B Y
B Y
C X
B Z
C Y
A X
A Y
C Y
A Z
B Y
B Z
C Y
A Z
A Y
A Y
B Y
A X
B Z
B X
B Z
B Y
B Y
A Y
C Y
B Y
B Z
B Y
A Y
C Y
C Y
A X
B Y
A X
C X
A Z
A Y
B Z
B Y
B Y
B Y
C Y
A X
B Z
A X
C Y
C Z
A X
B Z
C X
B Y
B Y
A Y
B Z
B X
B Y
B Y
A Z
C Y
B Y
B Y
C Y
B Y
A X
B Y
B Y
B Z
B Y
A Y
A Z
B Y
B Y
A Y
A Z
A Z
A Y
B Y
A Y
B Z
B Y
B Y
A Z
B Y
B Y
B X
A X
B Y
B Y
C Z
C X
A Y
B Z
B Y
C Y
B Y
B Y
B Y
A X
A Y
B Y
C Z
B Y
B Y
B Y
C Z
B Y
B Z
B Y
B Y
B Y
C Y
B Y
B Y
C Y
C Y
A X
C Y
A Y
B Y
B Y
B Y
B Y
A Y
A Y
C X
B Y
C Z
A X
B X
C Z
C Y
B Y
B Y
B X
B Z
C Y
B Z
B Y
B Y
B Y
B Y
C Z
C Y
C Y
A Y
B Y
B Z
B Y
C Z
B Y
B Y
C Y
B Y
B Z
B Z
B Y
C Z
B Y
B Y
B Y
B Y
B Y
A Y
C X
A Z
A Y
B Y
C X
B Z
B Y
C Y
B Y
A Y
B Y
B Y
B Y
A Z
A Z
B Y
B Y
B Z
A Z
C Y
C Y
C Y
C Z
B Y
C Y
C X
A Z
B Z
B X
B X
C Y
B Y
A Z
B Z
B Y
B Y
B Z
B Y
B Y
B X
B Y
B Y
A Z
A Z
A Y
B Z
B Y
A Y
B Y
A Z
B Y
B Y
A X
B Z
C Y
A Z
C Y
C Y
B Y
C X
C Y
A X
A Z
C Z
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
B Y
C X
C Y
C Y
C Y
B Y
B Y
C Y
C Y
A X
B X
C X
C Z
B Y
A Y
A Z
B Y
C Y
C Z
B Y
A Y
C Y
B Y
A Y
B Y
A Y
C Z
C Y
A Y
A Z
B Y
C Y
B Y
B Y
B Y
B Y
B Z
C Z
B Y
B Y
C Z
A Y
B Y
C Y
B Y
A X
B Y
B Y
A Y
B Y
B Y
A X
B Y
B Z
B Y
B Y
B Y
C Z
C Y
A Z
B Y
C Y
C Z
B Y
A Y
B Y
B Y
B Y
C X
B Z
C Y
C X
A X
C Y
B Y
B Y
B Y
B Y
B Y
B Z
C Y
B Y
C X
B Y
B Y
B Y
B Z
A Y
A Y
A Z
B Y
C Y
A Y
A X
B Z
C Y
B Y
B Y
B Y
B Y
B Z
A Y
B Y
C Y
C Z
B X
B Z
B Y
B Y
C Y
B X
A Y
C Y
B Y
C Y
C X
A Y
B Y
B Z
C Z
B Y
B Y
C Z
A Z
A Y
B Y
B Y
B Y
C Y
B Y
B Y
B Z
B Z
C Y
B Y
A Z
C Y
C Y
B Y
A Z
B Y
B Y
B Y
A Y
A X
C Y
C Z
C Y
B Z
B Y
B Y
B Y
C Y
B Y
B Y
B Y
B Z
B Y
B Y
C X
C Y
A Z
C X
B Y
B Y
B Z
B Y
A X
A X
C X
B Y
B Y
B Y
A Z
B Z
B Z
B Y
C Y
B Y
B Y
C Y
A Z
C Y
B Y
B Z
A Z
A Y
B Z
A Z
B Y
B Y
A Z
B Y
C Z
B Y
B Y
B Z
B Y
B Y
B Y
B Y
B Y
B Y
A Z
B Y
B Y
C Y
B Y
A Y
B Y
C Y
B Y
B Y
B Y
C Z
C Y
C X
B Y
A X
C Y
B Z
C Y
B Y
C X
A Y
B Y
A Z
A X
B Z
C Y
C Y
A Z
C Z
B Z
B Y
B Y
B Y
B Y
A Y
A Z
B Y
B Y
A Y
C X
B Y
B Y
C Y
C X
B X
C Y
B Y
A Y
B Y
B Y
B Y
C Y
B Y
B Y
A Z
B Y
A Z
B Y
B Y
B Z
B Y
C Y
B Y
A Y
B Y
A Y
B Y
B Z
B Y
B Y
C X
B Y
B Y
C X
C Z
C Z
B Y
B Z
B Y
A Y
B Y
A Y
B Y
C Y
A Y
B Y
C Y
B Y
B Y
B Y
A Y
C Y
C Z
C X
C Y
C X
C Y
B Y
C Z
C Z
B Y
A Z
B Z
B X
C Y
A Y
C Y
C Y
B Y
B Y
B Y
B Y
C X
B Y
C Y
C X
C Y
C X
B Y
A Y
A Y
B Y
C X
C X
C X
C X
C X
B Y
B Y
B Y
C Y
C Z
C Y
B Y
A Y
C Z
B Y
B Y
A Y
B Y
C Y
A Z
B Y
A Z
C X
C Y
C Y
A X
C Y
C Z
B Y
B Y
C Y
B Z
B Z
B Y
A Z
A X
B Y
B Y
A Z
C Y
C Z
A Z
C Z
B Y
C Y
B Z
C Z
C Y
A X
A Y
B Z
C Z
B Y
B Y
C Z
C X
B Y
B Y
B Z
B Y
A Y
A Z
B Y
A Y
B Y
B Y
A Z
C X
C Y
B Y
B Y
A X
B Y
B Z
C Y
A Y
C Y
B Y
C Y
B Y
B Y
B Y
C X
B X
B Y
B Y
B Y
B Z
B Z
B Y
B X
B Y
B X
B Z
A X
C X
B Y
B Y
A Z
C X
A Y
B Y
B Z
C Z
B Y
B Z
A Y
A Z
B Y
C Z
B Y
A Z
B Y
A Z
A Y
C Y
B Y
B Y
A X
C Y
B Y
A X
B Y
C Z
A Z
B Y
B X
A Y
C Y
B Z
C Y
B Y
B Z
A Y
A Z
B Y
B Y
A Z
A X
C Y
B Z
B Z
B Y
C Z
C Y
C Z
B Y
B Y
B Z
B Y
B Y
A X
B Y
B Y
C X
C Z
B Y
B Y
A X
B Y
B Z
C Z
B Z
A Y
B Y
B Z
B Y
C Y
C Y
B Y
B Y
B Z
A X
B Z
B Y
C Y
A X
B Y
A Y
B Z
A Y
B Y
B Y
B Z
C Y
C Y
B Z
C Y
B Y
C Y
B Y
A Z
A Z
C Z
B Y
B Y
A Z
B Z
B Z
C Y
B Y
B Y
B Z
C Y
A Z
C Y
C Z
C Z
A Y
B Y
C Y
B Z
B Y
C Z
B Y
B Y
A X
B Y
B Y
B Y
B Y
A Z
C Y
A Y
B Y
B Y
C Z
B Y
B Y
B Y
B Z
B Y
B X
C Y
B Y
B Y
A X
C X
A X
B Z
A Z
B Y
B Y
C X
B Z
B Y
B Z
B Y
C Z
A X
B Z
B Y
B Y
B Z
B Y
B Y
A Y
B Y
A X
B Z
C X
B Y
B Y
B Y
B Y
B Y
B Z
B Y
B Y
C Z
B Y
A Y
A X
C Y
B Z
B Z
B Y
B Y
A Y
B Z
B Y
B Y
B Y
B Y
B Z
B X
B Y
B Y
C Y
B Y
B Y
B Y
B Z
B Z
B Y
B Y
B Y
C X
C Z
C Z
A Z
A Y
C Y
B Y
C Z
C Y
C X
B Y
B Y
A X
A Y
C X
B Y
B Y
C Y
B Y
B Y
B Y
C Z
B Y
C Z
C Y
B Z
B Y
B Y
A X
C Z
C Y
B Y
B Y
C Y
C Y
B Z
B Y
B Z
B Y
C Y
B Y
C Y
B Y
C Y
C X
B Y
C Y
B Y
A Z
B Y
A Y
C Y
C Y
B Y
B Y
C X
A Z
A X
B Z
B Y
B Z
A Z
C Y
A Y
A X
C Y
A Y
A Y
C Z
B Y
B Y
B Y
C X
B Y
A X
B Y
B Y
B Y
A Z
A X
B Y
C Y
B Y
A X
B Z
A Y
A X
A Z
C Z
B Z
C X
B Y
A X
B Z
A Z
B Y
A Z
B Y
A Z
C Z
A Y
B Y
B Y
A X
B Y
A X
B Y
A Z
C Z
B Y
B Y
B Y
B Y
B Y
B Y
B Y
A Y
C X
C Y
C Z
B Y
B Y
A X
C Z
A Y
B Y
B Y
C Z
B Z
B Y
B Z
B Y
B Y
B Y
C Y
A Y
C Z
B Y
A X
B Y
C Y
B Y
A X
A X
B Y
C Y
B Y
B Y
A Y
C X
C Y
C X
A Y
B Y
B Y
A Y
B Y
C Y
C Z
B Z
B Y
B Y
C Y
B Z
B Y
B Y
B Y
C Y
B Y
C Y
B Y
C Z
B Y
B Z
B Y
B Y
A Z
B Y
B Z
B Y
B Z
A Y
B Y
B Y
B Y
A Y
C X
B Y
C Y
B Y
B Y
B Y
C Y
B Y
B Y
C Z
B Y
A Z
C Y
C Z
B Y
B Y
C Y
B Z
B Y
A Y
A Y
B Y
B Y
B Y
B X
B Z
A X
C Z
B Z
A Z
B Y
B Y
A X
A Y
C Y
B Y
B Z
B Y
B Y
B Y
B Z
A Y
B Y
B Y
B Y
C Z
C Z
B Y
B Z
B Y
B Y
B Y
C Y
A Z
B Y
B Y
B Z
B Y
B Y
B Y
A X
B Y
B Y
B Y
C Y
B Y
B Y
C Z
B Z
C Y
B Y
B Z
C Y
B Y
B Z
B Y
B Y
A Z
C Z
C Y
B Y
C X
B Y
B Y
B Z
B Y
B Y
A Y
B Z
C Y
C Y
A Y
B Z
C X
C Y
C X
A Z
A X
B Y
C X
B Y
B Y
B Z
A Z
B Z
B X
B Y
B Z
B Y
B X
A Y
B Y
C X
A Z
A X
B Y
B Y
B Y
B Z
B Y
A X
C Z
B Z
B Z
B Z
A Y
B Y
B Y
C X
B Y
A Y
A Z
B Z
B Z
B Y
B Y
C Y
C Y
C X
B Y
C Z
B Z
B Y
B Y
B Y
B Z
C X
C X
B Y
B Y
B Z
B Y
A Y
B Y
B Y
A X
B Y
B Y
B Z
A Y
B Y
A X
B X
A Y
C Y
B Y
B X
A X
B Y
B Z
A Y
B Z
B Y
B Y
C Y
B Y
B Y
B Y
B Y
B Y
A Y
B Y
A Y
B Y
A Y
B Y
B Y
B Y
A X
A Y
A Y
A X
B Z
A X
C Y
C Y
B Y
A X
B Y
A Y
B Y
B Y
B Y
C X
C Y
B Y
C X
C Y
B Y
B Y
C Y
B Y
B Y
B Y
B Z
A Z
B Y
B Z
B Z
A X
C Z
B Y
C Z
B Y
C Z
B Y
A X
C Y
C Z
A Z
A Y
B Y
A Y
B Y
B Y
B Y
B Y
B Y
A Y
C Y
C Y
B Z
B Y
B Y
B Z
A Z
A X
C Z
B Y
B Y
A X
C Y
A Y
B Y
A Y
B Y
B Z
C Y
C Z
B Y
A Y
B Y
C Z
C Z
A X
A X
C Z
A X
A Z
B Y
B Y
C Z
C Y
C Z
A X
A X
B Z
B Y
B Y
A X
B Y
B Z
C Y
C X
B Y
C Z
B Y
C Z
B Y
B Z
B Y
C Y
A Z
B Y
B Y
A X
A Z
A X
C Y
B Y
B Y
C Z
B Z
C X
B Y
C Y
C Y
A Z
C Z
B Z
B Y
B Z
B Y
A Z
A Y
A Y
A X
B Z
C Z
C X
B Y
A X
C X
A Y
B Y
B Y
B Y
A Z
B Y
C X
B Y
A Z
B Z
B Z
C Y
B Y
C X
C X
C Y
C Y
C Z
C X
B Y
C Y
C Y
B Z
B Y
A Y
B Z
A X
B Y
A Z
C Y
B Y
C Z
B Y
A X
C Z
B Z
B Y
B Y
B Y
B Y
B Y
C Z
A Z
C Y
A Z
B Y
C X
C X
A X
A Y
B Z
C Y
C X
C X
C Y
C X
B Y
C X
A Y
C Z
B Y
B Z
B Y
A X
B Y
A Z
A Y
C X
A X
B X
C X
C Z
C X
A Y
A Z
B Y
A Y
const std = @import("std");
const PATH = "import/day02.txt";
pub fn first(allocator: std.mem.Allocator) !usize {
_ = allocator;
var sum: usize = 0;
var lines = std.mem.tokenize(u8, @embedFile(PATH), "\n");
while (lines.next()) |line| {
var words = std.mem.tokenize(u8, line, " ");
const opp: usize = switch (words.next().?[0]) {
'A' => 1, // rock
'B' => 2, // paper
'C' => 3, // scissor
else => unreachable,
};
const me: usize = switch (words.next().?[0]) {
'X' => 1, // rock
'Y' => 2, // paper
'Z' => 3, // scissor
else => unreachable,
};
var outcome: usize = undefined;
switch (me) {
1 => {
outcome = if (opp == 1) 3 else if (opp == 2) 0 else 6;
},
2 => {
outcome = if (opp == 1) 6 else if (opp == 2) 3 else 0;
},
3 => {
outcome = if (opp == 1) 0 else if (opp == 2) 6 else 3;
},
else => unreachable,
}
sum += me + outcome;
}
return sum;
}
pub fn second(allocator: std.mem.Allocator) !usize {
_ = allocator;
var sum: usize = 0;
var lines = std.mem.tokenize(u8, @embedFile(PATH), "\n");
while (lines.next()) |line| {
var words = std.mem.tokenize(u8, line, " ");
const opp: usize = switch (words.next().?[0]) {
'A' => 1, // rock
'B' => 2, // paper
'C' => 3, // scissor
else => unreachable,
};
const outcome: usize = switch (words.next().?[0]) {
'X' => 0, // lose
'Y' => 3, // draw
'Z' => 6, // win
else => unreachable,
};
var me: usize = undefined;
switch (outcome) {
0 => { // lose
me = if (opp == 1) 3 else if (opp == 2) 1 else 2;
},
3 => { // draw
me = if (opp == 1) 1 else if (opp == 2) 2 else 3;
},
6 => { // win
me = if (opp == 1) 2 else if (opp == 2) 3 else 1;
},
else => unreachable,
}
sum += me + outcome;
}
return sum;
}
test "day02a" {
try std.testing.expectEqual(@as(usize, 13052), try first(std.testing.allocator));
}
test "day02b" {
try std.testing.expectEqual(@as(usize, 13693), try second(std.testing.allocator));
}
const test_input =
\\A Y
\\B X
\\C Z
;