[网络流24题]最长 k 可重线段集问题
题号:NC213834
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定平面xoy 上n 个开线段组成的集合I,和一个正整数k,试设计一个算法,从开线段集合I 中选取出开线段集合,使得在x 轴上的任何一点p,S 中与直线x=p 相交的开线段个数不超过k,且达到最大。这样的集合S称为开线段集合I的最长k可重线段集。称为最长k可重线段集的长度。对于任何开线段z,设其端点坐标为( x0 , y0 )和( x1,y1),则开线段z 的长度|z|定义为:
对于给定的开线段集合I和正整数k,计算开线段集合I的最长k可重线段集的长度。

输入描述:

第1 行有2 个正整数n和k,分别表示开线段的个数和开线段的可重迭数。接下来的n行,每行有4个整数,表示开线段的2 个端点坐标。

输出描述:

程序运行结束时,将计算出的最长k可重线段集的长度输出
示例1

输入

复制
4 2
1 2 7 3
6 5 8 3
7 8 10 5
9 6 13 9

输出

复制
17

备注:

1≤n≤500
1≤k≤13