#328. 培训班V2(数据加强版)

培训班V2(数据加强版)

Background

Special for beginners, ^_^

Description

随着国家双减政策的落实。娃们有了更多的自由时间。家长们纷纷觉得,国家双减了,我们就来个双加,把减了的补回去。报两个培训班吧! 现在有n名学生,有m个睿爸信奥培训班,有p个奥数培训班。为了在CSP中取得好成绩,家长决定两个班都报。培训班非常火爆,由于疫情防控的原因,有50%隔位就坐上座率的限制,每个培训已经基本达到限制,至多只能再招一名学生。现在要求所有学生到2个培训班的距离总和最小。采用如下的贪心策略。首先确定每一名学生报哪一个睿爸信奥分舵。找距离最近的分舵。如果距离存在并列,首先分配给序号在前面的学生,如果还是并列,优先分配给序号靠前的分舵。然后对奥数班也按照同样的策略分配一次。

Format

Input

第一行输入3个整数,分别为n、m和p,分别表示学生数量、睿爸信奥分舵数量、奥数班分舵数量。 接下来n行,每行给出一名学生的坐标。 接下来m行,每行给出一个睿爸信奥的分舵的坐标。 接下来p行,每行给出一个奥数班的分舵的坐标。 所有坐标值都是整数,绝对值不超过10000。 1 ≤ n ≤ m, p ≤ 5 000

Output

所有学生到两个培训班的距离之和,保留到小数点后面10位。

Samples

2 2 2
1 0
2 0
0 0
3 0
1 1
2 1
4.0000000000

Limitation

20s, 1024KiB for each test case.