L'ispirazione per questo codice golf puzzle è il problema Bridge and Torch , in cui d all'inizio di un bridge tutti devono attraversarlo nel minor tempo possibile.
Il problema è che al massimo due persone possono attraversare contemporaneamente, altrimenti il ponte si frantumerà sotto il loro peso e il gruppo ha accesso a una sola torcia, che deve essere trasportata per attraversare il ponte.
Ogni persona in tutto il puzzle ha un tempo specificato che impiegano per attraversare il ponte. Se due persone si incrociano, la coppia procede lentamente quanto la persona più lenta.
Non esiste un numero prestabilito di persone che devono attraversare il ponte; la tua soluzione DEVE funzionare per qualsiasi valore di d .
Non è necessario utilizzare l'input standard per questo problema, ma per motivi di spiegazione del problema, userò il seguente formato di input e output per la spiegazione. Il primo numero, d , è il numero di persone all'inizio del ponte. Quindi, il codice ricercherà d numeri, ciascuno rappresentante la velocità di una persona.
L'output del codice sarà il minimo tempo necessario per attraversare tutti dall'inizio del bridge alla fine del bridge, rispettando i criteri spiegati in precedenza.
Ecco alcuni casi di ingresso e di uscita dei casi e la spiegazione per il primo caso ingresso. Spetta a voi ricavare un algoritmo da queste informazioni per risolvere il problema nel minor numero di byte di codice possibile.
ingresso
4
1 2 5 8
produzione
15
Per raggiungere questa uscita, il popolo deve attraversare nel modo seguente.
A and B cross forward (2 minutes)
A returns (1 minute)
C and D cross forward (8 minutes)
B returns (2 minutes)
A and B cross forward (2 minutes)
Ecco un altro caso di test che ti guiderà lungo il tuo cammino.
ingresso
5
3 1 6 8 12
produzione
29
Regole:
- Supponi che l'input non verrà ordinato e devi farlo da solo (se necessario)
- Il numero di persone nel puzzle non è fissato a 4 (N> = 1)
- Ogni gruppo e singolo incrocio deve avere una torcia. C'è solo una torcia.
- Ogni gruppo deve essere composto da un massimo di solo 2 persone!
- No, non puoi saltare dal ponte e nuotare dall'altra parte. Nessun altro trucco come questo;).
1 4 5 6 7ha un problema simile. 25 vs. 26
N >= 2persone (il che significa, stranamente, che è un lavoro extra per gestire il banale caso di "1 persona deve attraversare"), quindi alcuni chiarimenti su questo punto sarebbero grandi. Grazie in anticipo.
1 3 4 5, che dovrebbero restituire 14 non 15.