#include <bits/stdc++.h>
using namespace std;
int main() {
int n, x, y;
int maxTip=INT_MIN;
cin>>n>>x>>y;
vector<int> A, B;
vector<int> C(n);
for(int i=0;i<n;i++)
{
int element;
cin>>element;
A.push_back(element);
}
for(int i=0;i<n;i++)
{
int element;
cin>>element;
B.push_back(element);
}
for(int i=0;i<n;i++){
C[i]=A[i]-B[i];
}
int oldSum=0;
for(int i=0;i<n;i++)
oldSum+=B[i];
sort(C.rbegin(), C.rend());
vector<int> prefix(n,0);
prefix[0]=C[0];
for(int i=1;i<=n;i++)
prefix[i]=prefix[i-1]+C[i];
//here 'i' is the number of orders so it should go from 0 to n
for(int i=0;i<n;i++){
if((i<=x) && (n-i<=y)){
int newSum = oldSum + prefix[i];
maxTip=max(newSum, maxTip);
}
}
cout<<maxTip;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuLCB4LCB5OwoJaW50IG1heFRpcD1JTlRfTUlOOwoJY2luPj5uPj54Pj55OwoJdmVjdG9yPGludD4gQSwgQjsKCXZlY3RvcjxpbnQ+IEMobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCWludCBlbGVtZW50OwoJCWNpbj4+ZWxlbWVudDsKCQlBLnB1c2hfYmFjayhlbGVtZW50KTsKCX0KCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJaW50IGVsZW1lbnQ7CgkJY2luPj5lbGVtZW50OwoJCUIucHVzaF9iYWNrKGVsZW1lbnQpOwoJfQoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJQ1tpXT1BW2ldLUJbaV07Cgl9CglpbnQgb2xkU3VtPTA7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJCW9sZFN1bSs9QltpXTsKCXNvcnQoQy5yYmVnaW4oKSwgQy5yZW5kKCkpOwoJdmVjdG9yPGludD4gcHJlZml4KG4sMCk7CglwcmVmaXhbMF09Q1swXTsKCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJCXByZWZpeFtpXT1wcmVmaXhbaS0xXStDW2ldOwoJLy9oZXJlICdpJyBpcyB0aGUgbnVtYmVyIG9mIG9yZGVycyBzbyBpdCBzaG91bGQgZ28gZnJvbSAwIHRvIG4KCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWlmKChpPD14KSAmJiAobi1pPD15KSl7CgkJCWludCBuZXdTdW0gPSBvbGRTdW0gKyBwcmVmaXhbaV07CgkJCW1heFRpcD1tYXgobmV3U3VtLCBtYXhUaXApOwoJCX0KCX0KCWNvdXQ8PG1heFRpcDsKCXJldHVybiAwOwp9