#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<cmath>
#include<queue>
using namespace std;
#define maxn 1005
int a[maxn],b[maxn];
long long c[maxn];
priority_queue<long long>qu;
int main()
{
int n,k1,k2;
scanf("%d%d%d",&n,&k1,&k2);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]);
c[i]=abs(a[i]-b[i]);
qu.push(c[i]);
}
for(int i=0;i<k1+k2;i++)
{
long long q=qu.top();
qu.pop();
if(!q)q++;
else q--;
qu.push(q);
}
long long ans=0;
while(!qu.empty())
{
long long q=qu.top();
qu.pop();
ans+=q*q;
}
printf("%lld\n",ans);
return 0;
}
注意:当q==0时要执行q++,而非q–。
abs(a[i]-b[i])可能超过int 要用long long 。