#P14816. [Bulgarian2016组队赛]productivity

    ID: 14032 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2200动态规划单调队列优化排序贪心队列

[Bulgarian2016组队赛]productivity

题目描述

“粉色童年”公司为了满足增长的市场需求,重组了自己的玩具工厂。

重组后的工厂由 PP 条完全相同且彼此独立的生产线组成。为了使一条生产线能够运行,必须至少给它分配一名工人。实际上,这些生产线都是全自动的,某条生产线的生产率并不取决于分配给它的工人数;要求每条生产线至少有一名工人,只是出于安全规章的要求。

重组之前,工厂中共有 NN 名工人。由于劳动法律的限制,管理层不能解雇任何一个人。也就是说,所有 NN 名工人都必须被分配到这 PP 条生产线中,并且每条生产线至少分配一人。

工厂还有一条内部规定:某条生产线在某一时刻能够工作,当且仅当分配给它的所有工人在这一时刻都在岗。

一条生产线的生产率用它实际工作的时间来衡量,也就是这条生产线上所有工人同时在岗的时间长度。

工厂的工作时间安排非常奇怪:所有工人都在一天之内的同一个班次中工作,但每个工人有自己的到达时间和离开时间。这些时间都是从一天开始时刻起计算的整数。

每条生产线都必须具有正生产率。否则,被分配到零生产率生产线的工人会感到自己没有价值。

现在管理层希望把 NN 名工人分配到 PP 条生产线中,使得在满足上述所有条件的前提下,所有生产线的总生产率最大。

请编写程序 productivity 解决这个问题。

输入格式

第一行输入两个正整数 NNPP,分别表示工人数和生产线数。

接下来 NN 行,每行包含两个非负整数 a,ba,b,表示一个工人的到达时间和离开时间。

输入保证存在一种分配方案,使得每条生产线都有正生产率。

输出格式

输出一个整数,表示在最优分配下,所有生产线总生产率的最大值。

数据范围

  • 1PN60001 \le P \le N \le 6000
  • 0a<b1000000 \le a < b \le 100000

样例

输入

4 2
1 3
1 5
4 6
2 7

输出

4

子任务

子任务 分值 NN PP
1 9 1N71 \le N \le 7 1P71 \le P \le 7
2 14 7<N157 < N \le 15 7<P97 < P \le 9
3 42 15<N40015 < N \le 400 9<P4009 < P \le 400
4 19 400<N2000400 < N \le 2000 400<P2000400 < P \le 2000
5 16 2000<N60002000 < N \le 6000 2000<P60002000 < P \le 6000