#L2888. 「APIO2015」巴邻旁之桥

「APIO2015」巴邻旁之桥

题目描述

一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域 AA 和区域 BB

每一块区域沿着河岸都建了恰好 1,000,000,0011,000,000,001 栋楼,每条岸边的楼都从 00 编号到 1,000,000,0001,000,000,000。相邻的每对楼相隔 11 个单位距离,河的宽度也是 11 个单位长度。区域 AA 中的 ii 号楼恰好与区域 BB 中的 ii 号楼隔河相对。

城市中有 NN 个居民。第 ii 个居民的房子在区域 PiP_iSiS_i 号建筑上,同时他的办公室坐落在 QiQ_i 区域的 TiT_i 号建筑上。有些居民的家在河这边,办公室却在河对岸,这些居民就必须依靠船只才能从家中去往办公室,这种情况让很多人都觉得不方便。为了使居民们可以开车去工作,政府决定建造不超过 KK 座横跨河流的大桥。 由于技术上的原因,每一座桥必须刚好连接河的两岸,桥梁必须严格垂直于河流,并且桥与桥之间不能相交。

当政府建造最多 KK 座桥之后,设 DiD_i 表示第 ii 个居民此时开车从家里到办公室的最短距离。请帮助政府建造桥梁,使得 D1+D2++DND_1 + D_2 + \dots + D_N 最小。

输入格式

输入的第一行包含两个正整数 KKNN,分别表示桥的上限数量和居民的数量。

接下来 NN 行,每一行包含四个参数:PiP_i, SiS_i, QiQ_iTiT_i,表示第 ii 个居民的房子在区域 PiP_iSiS_i 号建筑上,且他的办公室位于 QiQ_i 区域的 TiT_i 号建筑上。

输出格式

输出仅为一行,包含一个整数,表示 D1+D2++DND_1 + D_2 + \dots + D_N 的最小值。

样例 1

输入

1 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7

输出

24

样例 2

输入

2 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7

输出

22

样例说明

下图是两个样例输入的图示说明:

下面是样例 11 可能的一组最优方案,粉色的区域表示一座桥。

下面是样例 22 的一组可能的最优方案。

数据范围与提示

所有数据都保证:PiP_iQiQ_i 为字符 A\texttt{A}B\texttt{B} 中的一个, 0Si,Ti1090 \leq S_i, T_i \leq 10^9,同一栋建筑内可能有超过 11 间房子或办公室(或二者的组合,即房子或办公室的数量同时大于等于 11)。

子任务

  • 子任务 1188 分):K=1,1N1000K = 1, 1≤N≤1000
  • 子任务 221414 分):K=1,1N105K = 1, 1≤N≤10^5
  • 子任务 3399 分):K=2,1N100K = 2, 1≤N≤100
  • 子任务 443232 分):K=2,1N1000K = 2, 1≤N≤1000
  • 子任务 553737 分):K=2,1N105K=2, 1≤N≤10^5