
Originariamente inviata da
Scara95
Crei una matrice giorno*fasce, ordinata secondo l'ora di inizio delle fasce con le fasce disponibili 1 se la fascia è presente nel tal giorno 0 altrimenti.
codice:
9:45-12:00 10:50-13:00 14:00-18:30 16:30-18:30 19:00-20:15
LUN 1 0 1 0 1
MAR 0 1 0 1 1
MER 1 0 0 1 1
...
se alla fine hai <=4 colonne hai vinto, basta al più aggiungere colonne vuote.
Se alla fine hai più di 4 colonne cerchi fra le colonne adiacenti quelle che si sovrappongono e le unisci.
Unisci a destra o a sinistra a seconda che oraFinePrecedente-oraInizio sia maggiore da una parte o dall'altra.
Se non ci sono colonne che si sovrappongono vedi tu.