#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n, k1, k2;
  cin >> n >> k1 >> k2;
  long long int a[n], b[n];
  for (long long int i = 0; i < n; i++) cin >> a[i];
  for (long long int i = 0; i < n; i++) cin >> b[i];
  priority_queue<pair<long long int, long long int>> p;
  for (long long int i = 0; i < n; i++) {
    pair<long long int, long long int> q;
    q.first = abs(a[i] - b[i]);
    q.second = i;
    p.push(q);
  }
  for (long long int i = 0; i < k1; i++) {
    pair<long long int, long long int> q;
    q = p.top();
    p.pop();
    long long int x = q.second;
    if (a[x] > b[x]) {
      a[x]--;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    } else if (a[x] < b[x]) {
      a[x]++;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    } else {
      a[x]++;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    }
  }
  for (long long int i = 0; i < k2; i++) {
    pair<long long int, long long int> q;
    q = p.top();
    p.pop();
    long long int x = q.second;
    if (b[x] > a[x]) {
      b[x]--;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    } else if (b[x] < a[x]) {
      b[x]++;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    } else {
      b[x]++;
      pair<long long int, long long int> u;
      u.first = abs(a[x] - b[x]);
      u.second = x;
      p.push(u);
    }
  }
  unsigned long long int e = 0;
  for (int i = 0; i < n; i++) {
    e += ((a[i] - b[i]) * (a[i] - b[i]));
  }
  cout << e;
}
