Usando un linguaggio di programmazione scrivi 5 programmi a riga singola, ognuno dei quali produce una riga diversa del primo verso della canzone di Harry Nilsson del 1972 " Coconut " quando eseguito singolarmente:
Il fratello ha comprato una noce di cocco, l'ha comprata per un centesimo.
Sua sorella ne aveva un'altra, lei l'ha pagata per una calce.
Ha messo la calce nella noce di cocco, le ha bevute entrambe.
Ha messo la calce nella noce di cocco, le ha bevute entrambe
. metti la calce nella noce di cocco, le bevve entrambe
( testo completo )
Le ultime 3 righe hanno gli stessi testi, quindi potrebbero essere anche i tuoi ultimi 3 programmi.
Ci sono 5 fattoriali o 120 modi in cui questi 5 programmi a linea singola possono essere organizzati uno per riga in un singolo programma a 5 righe. Devi ottimizzare i tuoi programmi a riga singola in modo tale che per quante più di queste 120 combinazioni possibili il programma a 5 righe emetta l' intero verso nel suo giusto ordine , esattamente come appare sopra.
Esempio
La risposta più semplice avrebbe 5 istruzioni di stampa a riga singola, le ultime 3 identiche:
print('Brother bought a coconut, he bought it for a dime')
print('His sister had another one, she paid it for a lime')
print('She put the lime in the coconut, she drank them both up')
print('She put the lime in the coconut, she drank them both up')
print('She put the lime in the coconut, she drank them both up')
L'output per i programmi a 5 righe sarà il verso nel suo ordine corretto fintanto che le prime due linee singole saranno nella loro posizione corretta. Solo 6 delle 120 possibili disposizioni ci riescono.
punteggio
La presentazione con il maggior numero di casi funzionanti su tutte le 120 vittorie. Il tie breaker va al set di programmi con il conteggio cumulativo di byte più basso (newline non conteggiati). L'esempio ha 309 byte.
Dettagli
I tuoi programmi potrebbero non leggere il proprio codice sorgente. Né dovrebbero leggere altri file esterni o richiedere una connessione di rete.
Uscita su stdout o alternativa più vicina. È inoltre possibile eseguire l'output in un file con il nome desiderato.
I "programmi a linea singola" sono stringhe che contengono caratteri esclusi i terminatori di riga (probabilmente dovrai solo preoccuparti delle nuove righe).
Quando si compongono le linee singole in 5 linee, è necessario aggiungere esattamente 4 nuove linee, una tra ciascuna coppia adiacente di linee singole. Se lo desideri, puoi aggiungere una nuova riga finale.
main
metodo? Quindi quale dovrebbe essere eseguito, quando si esegue il programma?
main
.