百度由最开始的7人团队迅速发展为几千人的大团队,而工程师们经常需要在一起进行“头脑风暴”,这样会议室就成了紧缺资源。为了有效利用资源,大家决定制定规则, 自动安排会议室的使用。
为了公平起见,应按照申请时间从早到晚依次考虑,先到先得,且申请一旦被接受就不能取消。在处理每条请求时,只要当前请求可以和前面已接受的所有请求同时满足时就必须被接受(如有必要,可以调整给已接受申请安排的会议室和开会时间)。注意同一时间开的不同会议必须在不同的会议室,而同一个人不能同时参加两个会议。
输入格式
输入第一行为会议室总数n和请求总数m;第二行是n个整数,表示会议室能够容量的人数。以下m行每行是一个请求,按请求时间先后顺序排列(即应优先满足在输入中更早出现的请求)。
每个请求中第一个是整数,表示会议需要的时间长度(单位:小时);之后为与会人名单。人名由不超过四个汉字组成,用半角逗号分隔(每人名字固定且唯一,有重名的也在登记时区分开)。名单后的数字表示可以安排会议的时间,也以半角逗号分隔,如 10,11,14,15 表示第10, 11, 14, 15个小时可以开会(会议时间为9到19之间的正整数)。
输出格式
输出m行,依次表示每个请求是否被接受。1表示接受,0表示不接受。
输入样例: 例
2 4
20 2
3 张三,李四,王五 10,11,12,14,15
1 张三 12
4 王六,王七,王八,王九,王十 9,10,11,12,13,14,15
2 张三 14,15
输出样例: 例
1
0
0
1
样例解释
请求1可以满足,因此接受;在请求1接受的前提下请求2和请求3都无法满足,因此不接受。请求1和请求4可以同时满足(都在会议室1,前者用时间10~12,后者用时间14~15)。需要特别注意的是:如果没有请求1,后三个请求可以同时满足。但是规则是先到先得,请求1只要可以满足就必须接受。
评分规则
- 程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过2秒,否则该用例不得分;
- 要求程序能按照输入样例的格式读取标准数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
- 该题共有15个测试数据集,均满足n<=10,m<=10。每个会议最多有10人参加;
- 该题目30分。