Sort intervals by starting time so that s1 ≤ s2 ≤ ... ≤ sn.
d ←0
for j = 1 to n {
if (lecture j is compatible with some classroom k)
schedule lecture j in classroom k
else
allocate a new classroom d + 1
schedule lecture j in classroom d + 1
d←d + 1
}
number of allocated classrooms
Consider jobs in increasing order of finish time. Take each job
provided it's compatible with the ones already taken.
scheduling