Files
2022-04-01 02:01:59 +09:00

2.5 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f4601000cf542c50ff72 Problema 244: Sliders 5 301891 problem-244-sliders

--description--

Probabilmente conosci il gioco Fifteen Puzzle. Qui, invece di piastrelle numerate, abbiamo sette piastrelle rosse e otto piastrelle blu.

Una mossa è indicata dall'iniziale maiuscolo della direzione (sinistra, destra, alto, giù) in cui la piastrella è fatta scorrere, ad esempio partendo dalla configurazione (S), dalla sequenza LULUR raggiungiamo la configurazione (E):

(S) configuration S, (E) configurazione E

Per ogni percorso, il suo checksum è calcolato con (pseudocodice):

$$\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}$$

dove m_k è il valore ASCII della $k^{\text{th}}$-ma lettera nella sequenza di movimento e i valori ASCII per le mosse sono:

\begin{array}{|c|c|} \hline L & 76 \\\\ \hline R & 82 \\\\ \hline U & 85 \\\\ \hline D & 68 \\\\ \hline \end{array}

Per la sequenza LULUR riportata sopra, il checksum sarebbe 19761398. Ora, partendo dalla configurazione (S), trova tutti i modi più brevi per raggiungere la configurazione (T).

(S) configuration S, (T) configurazione T

Qual è la somma di tutti i checksum per i percorsi che hanno la lunghezza minima?

--hints--

sliders() dovrebbe restituire 96356848.

assert.strictEqual(sliders(), 96356848);

--seed--

--seed-contents--

function sliders() {

  return true;
}

sliders();

--solutions--

// solution required