看电影
时间限制:1秒 内存限制:256M
【题目描述】
因为他刚半期考试完,这个周末小H没有作业,于是他打算在电影院读个这个周末。他想在 T(1≤T≤100,000,000)秒内连续观看电影来享受这愉快的时光。
已知电影院有N(1≤N≤20)部电影正在播放,其中第i部电影的时长为t[i],会播放c[i]场(每一场可能在不同的播放厅)。小H 可以在电影放映期间的任意时刻入场或离场,但不能重复观看同一部电影,也不能切换到同一部电影时间重叠的场次。
请判断小H是否能从时间 0 到时间T秒连续观看电影。若可行,求出达成目标所需观看的最小电影数量。
【输入格式】
第一行输入包含N和T。
接下来 N 行给出每部电影的信息:前两个整数为电影时长t[i](1≤t[i]≤T)和播放场次数 c[i](1≤c[i]≤1000),随后给出c[i]个整数,按递增顺序给出每场的开始时间,范围0至T,且互不重复。
【输出格式】
输出一个整数,表示小H达成目标所需的最小电影数量。若不可能则输出-1。
【输入输出样例1】
Input
4 100
50 3 15 30 55
40 2 0 65
30 2 20 90
20 1 0
Output
3
【样例1解释】
小H 可以观看第四部电影的首场(时间0至20),接着观看第一部电影的首场(时间 20至65),最后观看第二部电影的末场(时间65至100)。
【测试点性质】
对于20%的数据,2≤N≤9。
对于50%的数据,2≤N≤17,c[i]≤20。
对于100%的数据,2≤N≤20,c[i]≤1000,2≤T≤100000000。
【来源】
Mr.he