#include <bits/stdc++.h>
using namespace std;
long long powmod(long long a, long long b, long long mod) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
const int INF = 0x3f3f3f3f;
const int MAXN = 1000005;
int n, k1, k2;
int a[MAXN], b[MAXN], c[MAXN];
int main() {
  cin >> n >> k1 >> k2;
  for (int i = (1); i < (n + 1); i++) cin >> a[i];
  for (int i = (1); i < (n + 1); i++) cin >> b[i];
  for (int i = (1); i < (n + 1); i++) c[i] = max(a[i] - b[i], b[i] - a[i]);
  k1 += k2;
  while (k1 > 0) {
    int p = 1;
    for (int i = (2); i < (n + 1); i++) {
      if (c[i] > c[p]) p = i;
    }
    if (!c[p])
      break;
    else
      c[p]--, k1--;
  }
  long long ans = 0;
  for (int i = (1); i < (n + 1); i++) ans += 1ll * c[i] * c[i];
  if (!k1)
    printf("%lld\n", ans);
  else if (k1 & 1)
    puts("1");
  else
    puts("0");
  return 0;
}
