#P14816. [Bulgarian2016组队赛]productivity
[Bulgarian2016组队赛]productivity
题目描述
“粉色童年”公司为了满足增长的市场需求,重组了自己的玩具工厂。
重组后的工厂由 条完全相同且彼此独立的生产线组成。为了使一条生产线能够运行,必须至少给它分配一名工人。实际上,这些生产线都是全自动的,某条生产线的生产率并不取决于分配给它的工人数;要求每条生产线至少有一名工人,只是出于安全规章的要求。
重组之前,工厂中共有 名工人。由于劳动法律的限制,管理层不能解雇任何一个人。也就是说,所有 名工人都必须被分配到这 条生产线中,并且每条生产线至少分配一人。
工厂还有一条内部规定:某条生产线在某一时刻能够工作,当且仅当分配给它的所有工人在这一时刻都在岗。
一条生产线的生产率用它实际工作的时间来衡量,也就是这条生产线上所有工人同时在岗的时间长度。
工厂的工作时间安排非常奇怪:所有工人都在一天之内的同一个班次中工作,但每个工人有自己的到达时间和离开时间。这些时间都是从一天开始时刻起计算的整数。
每条生产线都必须具有正生产率。否则,被分配到零生产率生产线的工人会感到自己没有价值。
现在管理层希望把 名工人分配到 条生产线中,使得在满足上述所有条件的前提下,所有生产线的总生产率最大。
请编写程序 productivity 解决这个问题。
输入格式
第一行输入两个正整数 和 ,分别表示工人数和生产线数。
接下来 行,每行包含两个非负整数 ,表示一个工人的到达时间和离开时间。
输入保证存在一种分配方案,使得每条生产线都有正生产率。
输出格式
输出一个整数,表示在最优分配下,所有生产线总生产率的最大值。
数据范围
- ;
- 。
样例
输入
4 2
1 3
1 5
4 6
2 7
输出
4
子任务
| 子任务 | 分值 | ||
|---|---|---|---|
| 1 | 9 | ||
| 2 | 14 | ||
| 3 | 42 | ||
| 4 | 19 | ||
| 5 | 16 |