Hai un sacco di scatole pesanti e vuoi impilarle nel minor numero possibile di pile. Il problema è che non puoi impilare più scatole su una scatola di quelle che può supportare, quindi le scatole più pesanti devono andare in fondo a una pila.
La sfida
Input : un elenco di pesi di scatole, in kg interi.
Output : un elenco di elenchi che descrivono le pile di scatole. Questo deve usare il minor numero possibile di stack per l'input. Per essere una pila valida, il peso di ogni scatola nella pila deve essere maggiore o uguale alla somma del peso di tutte le scatole sopra di essa.
Esempi di stack validi
(In ordine dal più basso al più alto)
- [3]
- [1, 1]
- [3, 2, 1]
- [4, 2, 1, 1]
- [27, 17, 6, 3, 1]
- [33, 32, 1]
- [999, 888, 99, 11, 1]
Esempi di stack non validi
(In ordine dal basso verso l'alto)
- [1, 2]
- [3, 3, 3]
- [5, 5, 1]
- [999, 888, 777]
- [4, 3, 2]
- [4321, 3000, 1234, 321]
Esempi di casi di test
1
IN: [1, 2, 3, 4, 5, 6, 9, 12]
OUT: [[12, 6, 3, 2, 1], [9, 5, 4]]
2
IN: [87, 432, 9999, 1234, 3030]
OUT: [[9999, 3030, 1234, 432, 87]]
3
IN: [1, 5, 3, 1, 4, 2, 1, 6, 1, 7, 2, 3]
OUT: [[6, 3, 2, 1], [7, 4, 2, 1], [5, 3, 1, 1]]
4
IN: [8, 5, 8, 8, 1, 2]
OUT: [[8, 8], [8, 5, 2, 1]]
Regole e presupposti
- Si applicano le regole I / O standard e le lacune vietate
- Utilizzare qualsiasi formato utile per l'I / O
- Le pile possono essere descritte dall'alto verso il basso o dal basso verso l'alto, purché tu sia coerente.
- L'ordine delle pile (anziché le scatole all'interno di quelle pile) non ha importanza.
- Puoi anche prendere le caselle di input come un elenco predefinito. L'ordine non è particolarmente importante per l'input, a condizione che il problema generale non venga risolto dall'ordinamento stesso.
- Se esiste più di una configurazione ottimale di stack, è possibile emetterne uno qualsiasi
- Si può presumere che ci sia almeno una scatola e che tutte le scatole pesino almeno 1 kg
- È necessario supportare pesi fino a 9.999 kg, come minimo.
- Devi supportare fino a 9.999 caselle totali, come minimo.
- Le scatole dello stesso peso sono indistinguibili, quindi non è necessario annotare quale scatola è stata utilizzata dove.
Buon golf! In bocca al lupo!
[8, 8, 8, 5, 1]
->[[8, 8], [8, 5, 1]]
[8, 5, 8, 8, 1, 2]
->[[8, 8], [8, 5, 2, 1]]