#include #include #include #include #include #include typedef long long llong; const int MAXN = 100000 + 10; const int INF = 1e9; int n, m; int a[MAXN]; int b[MAXN]; std::multiset s; void solve() { llong answer = 0; std::sort(a + 1, a + 1 + n); std::sort(b + 1, b + 1 + m); for (int i = 1 ; i <= m ; ++i) { s.insert(a[i]); } for (int i = 1 ; i <= m ; ++i) { auto it = s.upper_bound(b[i]); assert(it != s.begin()); it = std::prev(it); answer += 1LL * (b[i] - *it) * (b[i] - *it); s.erase(it); } std::cout << answer << '\n'; } void input() { std::cin >> n >> m; for (int i = 1 ; i <= n ; ++i) { std::cin >> a[i]; } for (int i = 1 ; i <= m ; ++i) { std::cin >> b[i]; } } void fastIOI() { freopen("planets.in", "r", stdin); freopen("planets.out", "w", stdout); std::ios_base :: sync_with_stdio(0); std::cout.tie(nullptr); std::cin.tie(nullptr); } int main() { fastIOI(); input(); solve(); return 0; }