1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//! # Day 22: Crab Combat
//!
//! It only takes a few hours of sailing the ocean on a raft for boredom to sink in. Fortunately,
//! you brought a small deck of [space cards]! You'd like to play a game of **Combat**, and there's
//! even an opponent available: a small crab that climbed aboard your raft before you left.
//!
//! Fortunately, it doesn't take long to teach the crab the rules.
//!
//! Before the game starts, split the cards so each player has their own deck (your puzzle input).
//! Then, the game consists of a series of **rounds**: both players draw their top card, and the
//! player with the higher-valued card wins the round. The winner keeps both cards, placing them on
//! the bottom of their own deck so that the winner's card is above the other card. If this causes a
//! player to have all of the cards, they win, and the game ends.
//!
//! For example, consider the following starting decks:
//!
//! ```txt
//! Player 1:
//! 9
//! 2
//! 6
//! 3
//! 1
//!
//! Player 2:
//! 5
//! 8
//! 4
//! 7
//! 10
//! ```
//!
//! This arrangement means that player 1's deck contains 5 cards, with `9` on top and `1` on the
//! bottom; player 2's deck also contains 5 cards, with `5` on top and `10` on the bottom.
//!
//! The first round begins with both players drawing the top card of their decks: `9` and `5`.
//! Player 1 has the higher card, so both cards move to the bottom of player 1's deck such that `9`
//! is above `5`. In total, it takes 29 rounds before a player has all of the cards:
//!
//! ```txt
//! -- Round 1 --
//! Player 1's deck: 9, 2, 6, 3, 1
//! Player 2's deck: 5, 8, 4, 7, 10
//! Player 1 plays: 9
//! Player 2 plays: 5
//! Player 1 wins the round!
//!
//! -- Round 2 --
//! Player 1's deck: 2, 6, 3, 1, 9, 5
//! Player 2's deck: 8, 4, 7, 10
//! Player 1 plays: 2
//! Player 2 plays: 8
//! Player 2 wins the round!
//!
//! -- Round 3 --
//! Player 1's deck: 6, 3, 1, 9, 5
//! Player 2's deck: 4, 7, 10, 8, 2
//! Player 1 plays: 6
//! Player 2 plays: 4
//! Player 1 wins the round!
//!
//! -- Round 4 --
//! Player 1's deck: 3, 1, 9, 5, 6, 4
//! Player 2's deck: 7, 10, 8, 2
//! Player 1 plays: 3
//! Player 2 plays: 7
//! Player 2 wins the round!
//!
//! -- Round 5 --
//! Player 1's deck: 1, 9, 5, 6, 4
//! Player 2's deck: 10, 8, 2, 7, 3
//! Player 1 plays: 1
//! Player 2 plays: 10
//! Player 2 wins the round!
//!
//! ...several more rounds pass...
//!
//! -- Round 27 --
//! Player 1's deck: 5, 4, 1
//! Player 2's deck: 8, 9, 7, 3, 2, 10, 6
//! Player 1 plays: 5
//! Player 2 plays: 8
//! Player 2 wins the round!
//!
//! -- Round 28 --
//! Player 1's deck: 4, 1
//! Player 2's deck: 9, 7, 3, 2, 10, 6, 8, 5
//! Player 1 plays: 4
//! Player 2 plays: 9
//! Player 2 wins the round!
//!
//! -- Round 29 --
//! Player 1's deck: 1
//! Player 2's deck: 7, 3, 2, 10, 6, 8, 5, 9, 4
//! Player 1 plays: 1
//! Player 2 plays: 7
//! Player 2 wins the round!
//!
//!
//! == Post-game results ==
//! Player 1's deck:
//! Player 2's deck: 3, 2, 10, 6, 8, 5, 9, 4, 7, 1
//! ```
//!
//! Once the game ends, you can calculate the winning player's **score**. The bottom card in their
//! deck is worth the value of the card multiplied by 1, the second-from-the-bottom card is worth
//! the value of the card multiplied by 2, and so on. With 10 cards, the top card is worth the value
//! on the card multiplied by 10. In this example, the winning player's score is:
//!
//! ```txt
//!    3 * 10
//! +  2 *  9
//! + 10 *  8
//! +  6 *  7
//! +  8 *  6
//! +  5 *  5
//! +  9 *  4
//! +  4 *  3
//! +  7 *  2
//! +  1 *  1
//! = 306
//! ```
//!
//! So, once the game ends, the winning player's score is **`306`**.
//!
//! Play the small crab in a game of Combat using the two decks you just dealt. **What is the
//! winning player's score?**
//!
//! [space cards]: crate::y2019::d22

use anyhow::Result;

pub const INPUT: &str = include_str!("d22.txt");

pub fn solve_part_one(input: &str) -> Result<i64> {
    Ok(0)
}

pub fn solve_part_two(input: &str) -> Result<i64> {
    Ok(0)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn part_one() {}

    #[test]
    fn part_two() {}
}