3.1 题目描述
循环镇有 n 个公民、n 座房子、n 个办公室。每个公民住在一座房子中,并在一个办公室工
作。没有两个公民住在同一座房子,也没有两个公民在同一个办公室工作。
循环镇是一个环形城市,绕城一圈路程为 l。循环镇的 2n 栋建筑(房子和办公室)都在环上
的整点上,其位置可以用 [0, l − 1] 范围内的整数来描述,且这 2n 栋建筑位置是互不相同的。
每天早上,每个公民同时从自己的房子出发,沿着环路走到自己的办公室。公民到达办公室之
后不会立刻进去工作,而是要等到所有公民都到达办公室之后才会同时进入办公室开始工作。
一场疫情的到来打破了常规,领导人要求每个公民保持社交距离。城市环路很窄,两个公民的
线路存在相互交叉时会很不方便(必须一个人暂时离开道路才能使另一个人通过),而三个人或以
上禁止同时走到同一个地方。
领导人可以给每个公民规定上班路线,即走城市环路的哪一边。领导人的目标是任意两个公
民线路交叉的总次数最小,求这个最小值。
3.2 输入输出格式
3.2.1 输入格式
第一行,两个整数 n, l;
接下来 n 行,每行两个整数 ai
, bi,表示第 i 个公民的房子和办公室的位置。
3.2.2 输出格式
一行,一个整数,表示所求的值。
3.3 样例
3.3.1 样例输入 1
3 100 10 50 30 20 60 403.3.2 样例输出 1
03.3.3 样例输入 2
4 100 30 70 10 12 60 75 90 503.3.4 样例输出 2
13.4 限制
子任务如下:
(1). 48 分:n ≤ 5000。
(2). 24 分:$n ≤ 10^5$。
(3). 28 分:无特殊限制。
对于所有数据,$1 ≤ n ≤ 10^6$。
保证$ 1 ≤ l ≤ 10^9,0 ≤ ai , bi < l,a1, a2, · · · , an, b1, b2, ... , bn$ 互不相同。