Ciao!
E' un problema interessante, allora: per prima cosa un po' di considerazioni
Il problema sembra impostato in modo tale da richiedere una soluzione con ricorsione + backtracking
Sembrano anche esserci alcune soluzioni greedy, mentre l'ottimo è un po' più complicato.
Ricerca dell'ottimo:
Una funzione riempie ricorsivamente i contenitori con il liquido A a partire dai più piccoli (strategia greedy) e cerca, mediante backtracking, tutte le soluzioni, che memorizza e salva da qualche parte.
Un'altra funzione (oppure la stessa) riempie i contenitori con il liquido B a partire dai più grossi con il backtracking e di nuovo salva tutte le soluzioni da qualche parte.
Un'ultima funzione accoppia le soluzioni di A con quelle di B e valuta
1- se sono compatibili, cioè se non usano gli stessi contenitori e se, messe assieme, le due soluzioni che costituiranno la soluzione finale non violano qualche clausola del problema
2- il parametro di ottimo: il parametro di ottimo secondo me è la differenza tra quanti contenitori ho riempito con A (il più alto possibile) e quanti contenitori ho riempito con B 8il più basso possibile), più è alta è la differenza e migliore è la soluzione.
Alla fine scegli la soluzione con il valore di ottimo più alto
Questo problema mi interessa molto (io sono una amante degli algoritmi) e mi piacerebbe che mi tenessi informato sugli sviluppi.
Buona fortuna!![]()