{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"农夫约翰正在安排他的 N(1 \u003c\u003d N \u003c\u003d 25,000)头奶牛来做一些围栏周围的清洁工作。他总是希望至少有一头奶牛在清洁工作上,并将一天分为 T 个班次(1 \u003c\u003d T \u003c\u003d 1,000,000),第一个班次是第 1 个,最后一个是第 T 个。\n\n每头奶牛在一天中只有一段时间内可以进行清洁工作。被选中进行清洁工作的奶牛将在她的时间段内工作。\n\n你的任务是帮助约翰农夫分配一些奶牛到班次,以便(i)每个班次至少有一头奶牛分配到,并且(ii)尽量少的奶牛参与清洁。如果不可能为每个班次分配一头奶牛,则打印 -1。"}},{"title":"输入","value":{"format":"HTML","content":"* 第 1 行:两个以空格分隔的整数:N 和 T\n\n* 第 2 行至第 N+1 行:每行包含一头奶牛可以工作的时间段的开始和结束时间。奶牛在开始时间开始工作,并在结束时间后结束。"}},{"title":"输出","value":{"format":"HTML","content":"* 第 1 行:约翰农夫需要雇佣的最少奶牛数量,如果不可能为每个班次分配一头奶牛,则输出 -1。"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 10\r\n1 7\r\n3 6\r\n6 10\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"提示","value":{"format":"HTML","content":"这个问题有巨大的输入数据,使用 scanf() 而不是 cin 来读取数据,以避免超时。\n\n输入详情:\n有 3 头奶牛和 10 个班次。奶牛 #1 可以在第 1 到第 7 个班次工作,奶牛 #2 可以在第 3 到第 6 个班次工作,奶牛 #3 可以在第 6 到第 10 个班次工作。\n\n输出详情:\n通过选择奶牛 #1 和 #3,所有班次都被覆盖了。没有办法使用少于 2 头奶牛来覆盖所有班次。"}}]}