Graph Coloring Code
Graph Coloring Code
import java.util.*;
int getEndTimeInMinutes() {
int hour = endHour;
if (isPmEnd && hour != 12) hour += 12;
if (!isPmEnd && hour == 12) hour = 0;
return hour * 60 + endMinute;
}
@Override
public String toString() {
return String.format("%s (%d:%02d%s - %d:%02d%s)",
subject,
startHour == 0 ? 12 : startHour > 12 ? startHour - 12 :
startHour,
startMinute,
isPmStart ? "pm" : "am",
endHour == 0 ? 12 : endHour > 12 ? endHour - 12 : endHour,
endMinute,
isPmEnd ? "pm" : "am");
}
}
// Assign rooms
Map<Integer, List<Event>> roomAssignments = assignRooms(events);
scanner.close();
}
public static Map<Integer, List<Event>> assignRooms(List<Event> events) {
// Sort events by start time for more efficient room assignment
List<Event> sortedEvents = new ArrayList<>(events);
sortedEvents.sort(Comparator.comparing(Event::getStartTimeInMinutes));
if (canAssign) {
roomEvents.add(event);
assigned = true;
break;
}
}
return roomAssignments;
}
}