//来个优先队列的写法
//满足a.top() >= b.top()就同时消去
void solve()
{
int n, x, y;
cin >> n >> x >> y;
priority_queue<int, vector<int>, greater<int>> a;
priority_queue<int, vector<int>, greater<int>> b;
for (int i = 0; i < n; i++)
{
int num; cin >> num;
a.push(num);
}
for (int i = 0; i < n; i++)
{
int num; cin >> num;
b.push(num);
}
while (a.top() >= b.top())
{
a.pop();
b.pop();
}
while (x--)
{
if (y > a.top())
{
a.pop();
a.push(y);
}
else
break;
}
long long t = 0;
while (!a.empty())
{
if(b.top()-t<=a.top())
{
a.pop();
b.pop();
continue;
}
t += (b.top() - t - a.top());
a.pop();
b.pop();
}
cout << t << endl;
}