freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-336-maximix-arrange...

2.3 KiB

id title challengeType forumTopicId dashedName
5900f4bd1000cf542c50ffcf Problema 336: Arrangiamenti Maximix 5 301994 problem-336-maximix-arrangements

--description--

Un treno è utilizzato per trasportare quattro carrozze nell'ordine: ABCD. Tuttavia, a volte quando il treno arriva per raccogliere le carrozze, esse non sono nell'ordine corretto.

Per riorganizzare le carrozze, vengono tutte smistate su un grande disco rotante. Dopo che le carrozze sono disaccoppiate in un punto specifico, il treno si allontana dal disco rotante tirando le carrozze ancora attaccate con esso. Le carrozze rimanenti sono ruotate di 180°. Tutte le carrozze vengono poi ricongiunte e questo processo viene ripetuto tutte le volte necessarie a ottenere il minor numero di utilizzi del disco.

Alcune disposizioni, come ADCB, possono essere risolte facilmente: le carrozze sono separate tra A e D, e dopo che DCB sono stati ruotati l'ordine corretto è stato raggiunto.

Tuttavia, Simple Simon, il macchinista del treno, non è noto per la sua efficienza, così risolve sempre il problema ottenendo inizialmente il carrello A nel posto corretto, poi la carrozza B, e così via.

Usando quattro carrozze, i peggior possibili arrangiamenti per Simon, che chiamiamo maximix, sono DACB e DBAC; ognuno richiedente quattro rotazioni (anche se usando l'approccio più efficiente potrebbero essere risolti usando solo tre rotazioni). Il processo che usa per DACB è mostrato sotto.

cinque rotazioni per arrangiamento maximix DACB

Possiamo verificare che ci sono 24 arrangiamenti maximix per sei carrozze, di cui il decimo arrangiamento lessicografico maximix è DFAECB.

Trova il {2011}-simo arrangiamento maximix lessicografico per undici carrozze.

--hints--

maximixArrangements() dovrebbe restituire una stringa.

assert(typeof maximixArrangements() === 'string');

maximixArrangements() dovrebbe restituire la stringa CAGBIHEFJDK.

assert.strictEqual(maximixArrangements(), 'CAGBIHEFJDK');

--seed--

--seed-contents--

function maximixArrangements() {

  return true;
}

maximixArrangements();

--solutions--

// solution required