curriculum/challenges/english/blocks/project-euler-problems-201-to-300/5900f4601000cf542c50ff72.md
You probably know the game Fifteen Puzzle. Here, instead of numbered tiles, we have seven red tiles and eight blue tiles.
A move is denoted by the uppercase initial of the direction (Left, Right, Up, Down) in which the tile is slid, e.g. starting from configuration ($S$), by the sequence $LULUR$ we reach the configuration ($E$):
($S$) , ($E$)
For each path, its checksum is calculated by (pseudocode):
$$\begin{align} & \text{checksum} = 0 \\ & \text{checksum} = (\text{checksum} × 243 + m_1) \; \text{mod} \; 100\,000\,007 \\ & \text{checksum} = (\text{checksum} × 243 + m_2) \; \text{mod} \; 100\,000\,007 \\ & \ldots \\ & \text{checksum} = (\text{checksum} × 243 + m_n) \; \text{mod} \; 100\,000\,007 \end{align}$$
where $m_k$ is the ASCII value of the $k^{\text{th}}$ letter in the move sequence and the ASCII values for the moves are:
$$\begin{array}{|c|c|} \hline L & 76 \\ \hline R & 82 \\ \hline U & 85 \\ \hline D & 68 \\ \hline \end{array}$$
For the sequence $LULUR$ given above, the checksum would be 19761398. Now, starting from configuration ($S$), find all shortest ways to reach configuration ($T$).
($S$) , ($T$)
What is the sum of all checksums for the paths having the minimal length?
sliders() should return 96356848.
assert.strictEqual(sliders(), 96356848);
function sliders() {
return true;
}
sliders();
// solution required