多人轮班监督问题,算法设计

【问题描述】
一群人的轮班安排,每个人做一个一周内若干天的轮班。不同的轮班有不同的工作,但我们可以把每个班次看作是一个连续几天的任务。可以有多个轮班同时进行。从这些人中找到一个子集,组成一个监督委员会,以每周与之会面一次。对于每一个不在委员会中的人来说,此人的班次与委员会中的某个人的班次重叠(至少有部分时间重叠)。这样一来,每个人的表现可以被至少一个在委员会任职的人观察到。现在任务加重,因此一个轮班可能需要多个人参加,并且一个人可能会参加多次轮班,但一个人的多次轮班之间不能有时间间隔,当然也不能有重叠,例如,一个人可以参加周1到周2,与周3到周4的两次轮班;但参加周1到周3,与周2到周4的两次轮班不合法;参加周1到周2,与周4到周4的两次轮班也不合法。现在要挑出人数最少的监督委员会。

给出一个有效的算法,该算法采用n个班次的时间表并产生一个完整的监督委员会,其中包含尽可能少的人。
【解题要求】
至少包含以下实例:n>100,一周有20天。
证明算法的正确性。
【输入格式】
N个班次的时间表,n行,每行3列及以上,其中前两列是该班次的起始时间,后面的列是该班次人员的工号。
1 1 1 5
1 3 2 6 8
2 3 3 5 7
3 3 4 9
4 4 4
4 6 10
4 7 9
5 6 11
6 6 12
【输出格式】
监督委员会的成员
5 9