Fenced In(金租)
时间限制:1秒 内存限制:256M
【题目描述】
有一个平面,左下角是 \((0,0)\),右上角是 \((A,B)\)。
有 \(n\) 个平行于 \(y\) 轴的栅栏 \(a_1..a_n\),表示挡在 \((a_i,0)\) 到 \((ai,B)\) 之间。
有 \(m\) 个平行于 \(x\) 轴的栅栏 \(b_1..b_n\),表示挡在 \((0,b_i)\) 到 \((A,b_i)\) 之间。
这样,平面被划成了 \((n+1)×(m+1)\)块。
现在要去掉某些栅栏的一部分,使得每一块都连通。
比如原来是这样:
可以去掉后变成这样:
求最少需要去掉多少长度的栅栏使得每一块都连通。
【输入格式】
第一行四个数 \(A,B,n,m\)。
接下来 \(n\) 行每行一个数表示 \(a_i\)
接下来 \(m\) 行每行一个数表示 \(b_i\)。
【输出格式】
输出一个数表示答案。
【输入输出样例】
Input
15 15 5 2
2
5
10
6
4
11
3
Output
44
【数据限制】
对于 \(100\%\) 的数据,\(1≤n,m≤2000\),\(1≤A,B≤10^9\)
【来源】
Mr.he