diff options
author | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-03 11:08:05 -0500 |
---|---|---|
committer | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-03 11:08:05 -0500 |
commit | d4ba38a19e361d932fd0b3b816b37153d191a3e5 (patch) | |
tree | c6f1c471ec2ad1ed999a2c17c68849adf9201430 /2022/day-02 | |
parent | e276854b56eff5508fb88e9a22563b3e80b18336 (diff) | |
download | gleam_aoc-d4ba38a19e361d932fd0b3b816b37153d191a3e5.tar.gz gleam_aoc-d4ba38a19e361d932fd0b3b816b37153d191a3e5.zip |
day 2 prolog tweaks
Diffstat (limited to '2022/day-02')
-rw-r--r-- | 2022/day-02/day-02.pl | 25 | ||||
-rw-r--r-- | 2022/day-02/prolog-input.txt | 2500 |
2 files changed, 2515 insertions, 10 deletions
diff --git a/2022/day-02/day-02.pl b/2022/day-02/day-02.pl index 6561ea5..707da41 100644 --- a/2022/day-02/day-02.pl +++ b/2022/day-02/day-02.pl @@ -1,6 +1,13 @@ :- use_module(library(yall)). :- use_module(library(apply)). +output_solutions :- + get_data(Games), + part1_total(Games, Part1), + write(Part1), nl, !, + part2_total(Games, Part2), + write(Part2), nl. + % Facts game(X, X, draw). @@ -30,10 +37,10 @@ bonus(lose, 0). bonus(draw, 3). bonus(win, 6). -% Predicates +% Rules get_data(Result) :- - setup_call_cleanup(open("2022/day-02/input", read, In), + setup_call_cleanup(open("2022/day-02/prolog-input.txt", read, In), (read_string(In, _, Str), split_string(Str, "\n", "\s\t\n", Lines), maplist([In, Out] >> split_string(In, "\s", "", Out), Lines, Result)), @@ -44,24 +51,22 @@ score_game(MyMove, Result, Score) :- bonus(MyMove, Y), Score is X + Y. -part_1_score([Them, Me], Score) :- +part1_score([Them, Me], Score) :- opponent_move(Them, TheirMove), assume_move(Me, MyMove), game(MyMove, TheirMove, Result), score_game(MyMove, Result, Score). -part_1_total(Total) :- - get_data(Games), - maplist(part_1_score, Games, Scores), +part1_total(Games, Total) :- + maplist(part1_score, Games, Scores), sum_list(Scores, Total). -part_2_score([Them, Outcome], Score) :- +part2_score([Them, Outcome], Score) :- opponent_move(Them, TheirMove), assume_outcome(Outcome, Result), game(MyMove, TheirMove, Result), score_game(MyMove, Result, Score). -part_2_total(Total) :- - get_data(Games), - maplist(part_2_score, Games, Scores), +part2_total(Games, Total) :- + maplist(part2_score, Games, Scores), sum_list(Scores, Total).
\ No newline at end of file diff --git a/2022/day-02/prolog-input.txt b/2022/day-02/prolog-input.txt new file mode 100644 index 0000000..95a2b2a --- /dev/null +++ b/2022/day-02/prolog-input.txt @@ -0,0 +1,2500 @@ +C X +C X +A Y +C X +B Y +A X +A Z +B Y +C Z +C Z +B X +C Z +B Y +C Z +B Y +A Z +B Y +C X +C X +C X +B X +C Z +C X +C Z +C X +A Y +B Y +B Z +A X +C X +C Z +C Z +A Z +B Y +C Z +C X +C X +C Z +B Y +C Z +C Z +C X +B X +B X +A Y +C Z +C Z +B Y +B Y +C Z +C X +A Z +C X +C Z +C Z +B X +C Z +C Z +B Y +A Y +B X +C X +C X +C Z +C X +A Y +C X +C Z +A Z +B Y +C Z +C X +C X +C Z +C Z +C Z +A Z +C Z +A Z +A Z +C X +B Y +C X +C X +A Z +C X +A Y +C Z +C Z +A Y +A Z +C Z +C Z +A Y +C Z +C Y +B Y +B Y +A Z +A Y +C Z +C Z +A Z +C Z +A Y +B Z +C X +C Z +C X +B Y +C Z +C X +B Y +B X +A Y +C Z +C Z +C Z +B Z +A Y +C Z +C Z +C X +C Z +C X +A Y +C Z +C Z +C X +B Y +B X +B Y +C Z +C X +B X +C Z +C Z +A Y +C Z +A Z +A Y +C Z +A Y +C X +A Y +C Y +A Z +C X +C X +B Y +B Y +A Y +A Z +C Z +C X +C Z +A Y +B Y +A Y +B X +C Z +C Z +A Z +A Y +C X +C X +C X +A Z +B Y +C Z +C Z +C Z +C X +B Z +C Z +C Z +B Z +C Z +A Z +B Y +A Y +C Z +B Y +B X +B X +C X +C Z +A X +C Z +C X +C X +C X +C X +C X +B Y +C X +C X +A Y +A Y +C Z +C Z +B X +C Z +C Z +C Z +C Z +A Z +C Z +A Z +B Y +B Y +C Z +B Y +C Z +C Z +C Z +C X +B Y +B Y +C Z +A Z +C Z +C X +B Y +C Z +A Z +C Z +C X +C Z +C Z +C X +C X +B Z +A Y +B X +C Z +B Y +C X +C X +C Z +C Z +B X +B X +B Y +A X +C X +A Z +A Z +C Z +B Y +C Z +A Z +B X +C X +B Y +A Z +C X +A X +A Z +B Y +B X +B Y +A Y +C Z +C Z +B X +C Z +C X +B Y +C Z +C Z +A Y +B Y +A Z +A Y +C X +C X +C Z +A Z +C Z +B Z +A Z +A Y +C X +C Z +C X +B Z +C Z +B Y +A Y +B X +A Y +C Z +A Y +C Z +C X +B Y +C X +A Y +A Z +C Z +B Y +C X +A Y +C X +C Z +C X +B Y +C X +C Z +C Z +A Z +B Y +C X +B X +A Z +C X +C X +A Y +B X +C X +A Z +C Z +C Z +C Z +B Y +A Y +C X +C Z +C Z +A Z +C Z +A Y +C X +C X +C X +A Z +B Y +C Z +A Y +C Z +C Z +C X +C Z +A Z +C Z +B Y +C X +C X +C Z +B Z +B Y +C X +C X +A Y +A Z +A Z +A X +C X +A Y +B Y +A Y +A Z +B Y +B Y +A Y +B Y +C X +A Z +B X +C Z +A Z +B X +A Y +B X +B Y +A Y +A X +C Z +B Z +B X +B Z +C Z +C X +B X +B Y +A Y +B Y +B Y +B Y +A Z +A Y +B X +A Y +C X +B Y +B X +B Y +C X +A Y +C X +A Y +C Z +C Z +A Z +C Z +C X +C X +A Z +C X +C X +C X +A Y +A Z +A Z +C Z +B X +C X +C X +C Z +A Y +C X +C X +B X +C Z +C Z +C X +B Z +C X +C X +C Z +A Y +C X +A Z +C Z +C X +B X +B Y +C X +C Z +C X +C Z +A Z +C Z +C X +C Z +C Z +A Z +B X +C X +C Z +C X +C X +C Z +C X +C Z +A Z +A Z +A Z +C Z +C X +A Z +C Z +C Z +C Z +A Z +B Y +C X +B Y +C X +C Z +B Y +C X +C X +A Z +A Z +C X +C Z +C X +C Z +A Z +A Y +C Z +C Z +A Y +B Y +B Y +C Z +B Y +B X +B Z +A Y +A Z +C X +B Y +B Z +B Y +B Z +C Z +B Y +C Z +C Z +B Y +B X +B Z +C X +A Z +C X +C X +C X +A Z +C Z +A Z +C Z +A Y +C Y +B Y +A Z +B Y +C Z +A Z +A Y +B X +C X +C X +C X +C Z +C X +B X +C Z +A Y +C Z +A X +B Y +B Z +C Z +B Y +C Z +B X +B Y +C Z +B X +A Z +B X +B Y +A Y +B Z +C X +C Z +A Z +A Y +A Z +C X +C Z +B Z +A Z +A Z +C X +C Z +C X +C X +A Z +C X +C X +C X +B X +A Y +B Y +B X +B Y +C Z +B Y +B Z +C Z +C X +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A Z +A Z +A Z +C X +C Z +B Y +C Z +C Z +C Z +C Z +C X +C X +A Z +B Y +A Z +B Z +C X +C X +C Z +C Z +C X +A Y +C X +A Y +C Z +A Z +C Z +B X +C Z +C Z +C X +C X +C Z +B Z +A Y +B X +A Y +B Y +A Y +A Z +A Z +C Z +B X +C Z +C X +C Z +C Z +A Z +C X +A Y +C X +A Z +C Z +C X +C Z +A Z +C X +C X +C X +C X +B X +B Y +C X +C Z +C Z +C Z +C Z +A Z +A Z +A Y +C Z +C X +C Z +C Z +C Z +A Y +C X +A Z +C Y +A Z +C Z +C X +A Y +C Z +C X +C X +A Z +B Y +C Z +A Z +C Z +C Z +C Z +B Y +C X +C X +A X +A Y +C Z +A Z +C Z +B Y +C X +B X +C X +C X +A Y +C Z +C Z +C Z +C X +A Z +B Y +A Y +B Z +B Z +B X +A Z +B X +B X +A Z +A Z +C Y +B Y +C Z +A X +C Z +B X +C Z +A Y +A Y +C Z +C Z +A Z +B Y +C Z +C Z +C Z +C X +A Y +C X +B Y +B Y +C X +C Z +C X +B X +A Y +A Y +C Z +C Z +C Z +C Z +C Z +B X +C Z +A Y +B X +A Y +A Z +C Z +C X +B Y +B Y +C Z +C Z +C Z +B Y +C X +B Y +A Y +B X +C Z +C Z +A Y +C X +C Z +A Y +C X +C X +A Z +C Z +B X +A Z +B Y +C Z +A Z +B X +C Z +B Y +C Z +B Y +C X +C Z +B X +C X +B Y +C X +A Y +C Z +C Z +C X +B Y +C X +C Z +C X +C Z +A Z +A Y +C X +C Z +C Z +A Z +C X +B Z +A Z +B Y +C X +A Z +C Z +B Y +C X +C X +C Z +C Z +B Y +A Z +C Z +C X +C Z +A Z +C X +A Z +C Z +C X +C X +C Z +B X +C Z +C Z +C Z +B Y +A X +B Y +C X +A Z +B X +A Z +C Z +C X +C Z +C Z +B Y +B X +C Z +B Z +B Y +B X +C X +C X +C X +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +C X +C Z +A Y +C X +B X +A Y +C X +C X +C Z +C Z +C X +B X +B Y +B Y +C Z +B X +C X +C X +C Z +C Z +A Y +C Z +A Y +C Z +C Z +B Y +A Z +B X +B X +C Z +C Z +A Y +A Y +C Z +C Z +C X +A Y +A Y +C Z +A Z +C X +B Z +A Y +C X +B Z +A Y +C X +B Y +C X +C X +C Z +A X +C Y +A Y +B Z +B Y +A X +B Y +A Z +C Z +C X +C X +C X +C Y +B Y +C Z +A Z +C X +C X +C Z +C Z +C X +C Z +B Y +C Z +C X +B Y +A Z +C X +B Y +C Z +C X +B Y +A Z +B X +C Z +B X +B X +C Z +C Z +C X +B Y +A Y +B X +B X +A Y +B Y +B Y +B X +A Z +A Y +C Z +B Y +C Z +A Z +C Z +C X +A Z +C X +C Z +C X +B Y +C X +A Z +B X +C Z +C X +C X +B Y +A Y +C Z +C X +A Y +A X +C Z +B Y +B X +C X +C X +C X +C Z +A Z +B Y +A Y +B Y +B X +B Y +B Y +A Z +B Y +B Y +B Y +C Z +C X +A Z +A X +B Z +C X +C X +C X +C X +C Z +A Z +B Y +A Z +B Y +C X +A Z +A Y +C Z +C X +B X +A Z +B Y +C Z +A Z +C X +A Z +A Y +B Y +C Z +B Y +C X +A Z +A Z +A X +C Z +C X +A Y +B Y +B X +C Z +A Z +C X +B X +B Y +A Z +C X +B Y +C X +C Z +C Z +B Y +A Z +A Y +C X +B Y +C X +C X +C Z +C Z +C X +A X +C X +A Z +C Z +B X +B X +C X +B X +B Y +C X +C X +A Y +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A Z +B X +C X +B Y +B Y +C X +C Z +A Z +C X +C Z +C Z +C X +A Z +C Z +A Z +C Z +A Y +C X +C X +B Y +C X +C Z +B X +A Y +C Z +C X +B Y +B X +A Y +C X +A Z +C Z +C X +C X +A Y +B Y +C Z +B Z +C Z +C X +B Y +C Z +C X +A Y +C X +C Z +C X +C X +B X +C X +B Y +C X +C Z +C X +B X +B X +C Z +A Y +C Z +C Y +B X +A Z +C X +A Z +B Z +A Y +C Z +C Z +A Z +B Z +A Z +C X +C Z +C Z +A Z +A Y +C Z +C X +A Y +B Y +B X +A Z +A Y +C X +B X +A Y +C Z +B Y +C X +C X +C X +B X +A Z +B Y +B Y +A Z +C X +B X +B X +A Y +C Z +C X +C X +A Y +C X +C X +C Z +C X +A Y +B Y +C Z +A Z +C Z +A Z +A Z +A Y +C X +C X +C X +A Y +A Y +B Y +B Z +A Z +C X +C Z +C X +C Z +B X +C X +C X +B X +C Z +C X +B Y +B X +C Z +A Z +C Z +B Y +C Z +C Z +B X +A Y +B Y +A Z +B Y +C X +C X +A Z +C Z +C X +C Z +C X +A Z +C X +A Z +C X +A Y +A Z +C X +C Z +B Y +C Z +A Z +C Y +B Z +B Y +A Z +C Z +A X +A Z +C Z +C X +C X +A Y +C Z +C X +C Z +C Z +C Z +B Y +C Z +C X +C Z +B Y +C Z +B Y +C Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +A Y +C X +B Y +A Y +C X +A Z +A Y +C Z +B Y +C Z +C X +A Y +B Y +C X +C X +C X +A Y +A Z +B X +B X +B X +B Y +C Z +B Y +C Z +C Z +B Y +A X +C X +A Y +C Z +B Y +B Y +C Z +C Z +C X +C Z +C Z +B Y +C Z +C X +A Y +A Z +C X +B Z +C X +B Y +C Z +C X +A Y +A Z +C Z +C X +C Z +C X +C X +C X +C X +C Z +C X +B Y +A Y +C X +C Z +A Z +B Y +C Z +C X +C Z +B Y +A Z +A Y +A Y +B Y +B Y +A Z +B X +A Y +C X +C X +A Y +C X +A Y +B Y +C Z +A X +B X +A Y +A Z +C Z +B X +C Z +B Y +C X +B Y +C Z +A Z +A Y +C X +C Z +B X +B Y +C Z +C Z +A Z +C Z +B Z +C X +C X +C Z +C Z +C Z +C X +C X +C Z +B Y +C Z +B Z +C X +A Y +C Z +B Y +C X +A Y +C Z +B X +C Z +A Z +C Z +C X +A Y +A Y +A Y +C Z +C Z +A Y +A X +C Z +C Z +C X +C Z +A Z +A Z +C Z +C X +C Z +B Y +A Y +B Z +B Y +C X +C Z +C X +B X +B Y +C X +C X +C X +A Z +A Y +C X +C Z +C X +B Y +C Z +B X +C Z +B Y +A Z +C X +B Y +C X +B X +A Z +C X +B Y +A Y +C Z +C X +A Y +C X +B Y +B X +C Z +C X +C X +C Z +C X +C X +A Y +A X +C Z +C Z +C Z +B Y +C Z +A Z +B X +C Z +C X +C X +A Y +A Z +B Y +B Y +C Z +C Z +A Y +A Z +A Z +C Z +B Y +B Y +C Z +B Y +C X +C X +C Z +A Z +C X +C X +B Y +B Y +C Z +B Y +C Z +C Z +C Z +C Z +C X +C Z +B Y +C Z +C Z +B X +C Z +C Z +C X +B Y +C Z +A Z +A Z +A Z +C X +B Y +C Z +A Y +B X +C X +C X +A X +A Y +B X +C Z +C X +C Z +C Z +B Y +C Z +C Z +B Z +C Z +C Z +B X +A Y +C X +A Z +B Y +A Z +C X +B X +B X +C Z +A X +B Z +A Z +B Y +C X +C Z +B Z +C X +B X +C Z +A Z +B X +C Z +C Z +A Z +A Y +C Z +C Z +B X +A Z +C Z +B Y +B Y +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +C X +A Y +C Z +C Z +C X +C Z +B Y +B X +B Y +A Z +C Z +B Y +B X +C Z +B X +C Y +C X +B Y +C Z +B Y +A Z +B Y +C X +C Z +B X +C Z +A Y +C Z +B X +A Z +A Y +B Y +C Z +A Y +B Y +C X +A Z +A Y +C Z +C Z +A Y +B X +C X +B Y +A Y +C X +B X +C X +C Z +C Z +B Y +A Z +B Y +A Z +A Y +A Z +B X +A Y +C X +B Y +C Z +C Z +A Z +C Z +C Z +C X +C Z +C Z +B Y +A Z +C X +A Y +C Z +A X +A Z +C Z +B Y +C X +C Y +A Y +B X +B Y +C Z +C Z +B X +B X +C Y +B Y +B X +C X +C Z +A Z +C Z +A Z +C Z +C Z +A Z +B X +C Z +C X +C Z +B Y +B X +A Z +C Z +B X +C Z +B Z +C Z +B Y +B Y +C Z +B Y +A Y +A Z +A Z +C X +A X +C X +C Z +C Z +A Y +C Z +C Z +C Z +A Y +B X +C Z +C X +B X +C X +C X +B Y +C Z +B X +C X +B Y +A Y +C Z +C X +C X +A Z +B Y +C Z +B Y +C Z +B Z +B Y +B Y +A Y +B Y +B Y +A X +A Y +C Z +C X +B X +C Z +C X +C X +B Y +C Z +C Z +B Y +A Y +B Y +C Z +C X +C Z +C Z +C X +A Y +A Y +C Z +A Y +C X +C Z +A Z +A Z +C Z +B Y +A X +A X +B X +A Z +C X +C X +C X +C X +A Z +A Z +C X +B X +B Y +C X +B Y +B Z +A Z +A Y +C X +B Y +B Y +C Z +B X +B X +C Z +B Y +C Z +C Z +B Y +C Z +C X +C Z +B Y +C X +C Z +C Z +C X +B X +C Z +C X +C X +C Y +C Z +B Y +C X +C X +A Y +C X +C X +C Z +C X +C Z +C Z +C Z +A X +C Z +C Y +C Z +C Z +C Z +C Z +A X +C Z +B X +C Z +C X +B Y +C X +A Z +C Z +C X +B Y +B Y +A Z +A Y +C X +A Z +C Z +C Z +A Y +A Z +A X +C Z +A Z +C Z +C Z +C Z +A Z +A Y +A Z +A Z +A Y +A Y +C X +A Y +A Y +C Z +C Z +C Z +B X +C X +C Z +B X +C Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +C Z +C X +A Z +C Z +B X +B Y +C X +B Y +C X +C X +A Y +C Z +C X +C X +C Z +C X +C X +C Z +B Y +B X +C X +B X +B Y +C X +A Z +B Y +A Z +B Y +A Z +A Y +C Z +C Z +C X +B Y +A Y +A Y +C X +B Y +C X +A Z +A Z +C X +A X +C X +A Z +C X +C Z +C X +A Y +C X +B Y +B Y +C X +A Z +C Z +C Z +B X +C Z +C Z +A Y +C Z +B Y +A Z +A X +C Z +C X +B Y +A Z +C X +B X +A Z +A Z +C Z +A Z +C Z +C Z +A X +C X +A Z +C X +A Y +B Y +C Z +B Y +B X +C Z +A X +B Z +A Z +A Z +C Z +A Z +C Z +A Z +C X +C X +C X +C X +A Z +C Z +C X +B Y +A Z +B Y +A Y +C Z +A Z +C X +C Z +B Y +C X +A Y +B X +A Y +B X +B Y +C Z +A Y +B Y +A Y +B Y +C Z +C X +C X +C X +C Z +B Y +C Z +B X +C X +A Y +A X +B Y +A Z +C Z +A Y +A Z +C X +B Y +A Z +C Z +C X +C Y +C X +A Z +A Y +C X +A Y +C X +C X +A Z +B Y +C Z +C X +B X +B Y +A Z +A Z +B X +B Y +C X +B Y +C Z +B Y +C Y +B Y +B X +B Y +A Y +B Y +C Z +B X +B Y +C Z +A Z +C Z +B X +A Y +B X +C Z +B Y +A Y +C Z +C Z +C Y +C Z +A Y +C X +A Y +C Z +C Z +C Z +C Z +C Z +C X +C Z +C Z +B Y +C X +C Z +B X +C X +C Z +C X +A Z +C X +C X +C Z +C X +C X +C Z +A Z +B X +B Y +C Z +A Z +C X +B X +B Y +C Z +C Z +A Y +C X +C Z +C X +C Z +B Y +C X +C Z +C X +C X +C Z +C X +B X +C X +C Z +A Y +A Y +A Y +C Z +C Z +B X +C X +A Z +C Z +C X +C Z +B X +C Z +B Z +C X +A Y +C Z +A Y +C X +B Y +B Y +A Z +C Z +C Z +C Z +A Z +C X +A Y +C Z +A Y +C Z +A Z +A Z +B Y +C Z +A Z +C X +A Y +C Z +C Z +C X +C X +C X +A X +B Z +C Z +C X +A Y +A Z +C Z +B X +B Y +C X +C Z +B X +B Y +C X +B X +C Z +C X +C X +C X +C X +A Y +A Z +A Y +B Y +C Z +B Y +B Y +C Z +A X +C Z +B X +C Z +C Z +A Z +B Y +C Z +C Z +A Y +A Z +A Z +A Z +B X +C X +C X +B Y +C Z +C X +B Y +A Y +C X +C Z +C Z +C X +C Y +A Y +A Z +C X +C X +A Z +B X +C Z +A X +C Z +C X +C Z +A X +A Z +C X +B Y +C Z +C Z +B X +A Y +B Y +C Z +C Z +A Z +A Y +C Z +C Z +A X +B Y +C Z +C Z +B Y +C X +C Z +B X +B Y +A Z +C Z +C X +C X +C Z +B Z +B Y +C Z +C X +A Y +C X +A Y +A Z +B Y +B X +C Z +A Z +C Z +C Z +C Z +A Y +B Y +A Z +B Y +C Z +C X +B Y +C Z +A Y +C Z +A Z +C Z +C Z +C Z +A Z +C X +B Y +C Z +A Z +C Z +C Z +A Z +C Z +C X +B Z +C Z +C Z +A Z +C Z +C Z +B Y +B X +C Z +C Z +B Y +A Y +C Z +A Z +A Z +C Z +C X +C X +B X +C X +A Y +B X +A Y +C Z +C X +B Y +C Z +C X +C X +C X +B X +B Z +C Z +B Y +C X +A Z +C Z +C Z +A Z +A Z +C Z +C Z +A Z +A Z +A Z +C Z +A Z +C Y +A Z +C Z +C Z +C X +C X +C Z +C Z +A Z +C Z +A Z +C X +C X +C X +A Y +A Z +A Z +A Y +B X +C Z +C Z +B X +C Z +C X +B Y +C Z +C X +C X +B Y +B Y +A Y +A Z +B X +C X +B Y +B Y +B Y +C Z +C X +C X +A Y +B Z +A Z +A Z +B X +C X +A Y +C X +C Z +C X +A Y +A Z +C Z +A Z +C Z +C X +C X +A Z +B X +B X +B Y +C Z +C Z +C X +C X +C X +B Y +C Z +C X +B X +C Z +C X +B X +A Y +B Y +C Z +A Z +A Y +C Z +A Y +A Y +C Z +B Y +C Z +B Z +C Z +A Z +C X +C X +C Z +B X +C X +B Y +C Z +B X +C Z +C X +B X +B Y +B Z +B X +A Y +C X +C Z +C Z +A Y +B X +A Y +C X +C Z +B Y +C Z +C Z +C Z +A Z +A Z +A Y +C Z +B Y +C Z +C X +B Y +C Z +C Z +A X +C X +B Y +A Z +C Z +C X +A Z +A Y +C Z +C Z +B X +C Z +A Z +A Y +C X +A Y +C Z +C X +C X +C X +B Y +C X +A Y +C X +B Y +B X +A Y +B X +A Y +B Z +C Z +A Z +B Y +B X +C Z +C Z +C X +B Y +A Z +A Z +A Y +A Y +C Z +A Z +A Z +B Y +C X +C Z +C Z +C Z +A Y +A Z |