func_code_string: #include <bits/stdc++.h>   using namespace std;   bool isSquare(long long n) {     const long long s = (long long)ceil(sqrt(n));     return (s * s) == n;   }   long long calcCostToSquare(long long n) {     if (isSquare(n)) return 0;     const auto f1 = (long long)ceil(sqrt(n));     const auto f2 = (long long)floor(sqrt(n));     return min((long long)abs(f1 * f1 - n), (long long)abs(f2 * f2 - n));   }   long long calcCostToNonSquare(long long n) {     if (n == 0) return 2;     if (isSquare(n)) return 1;     return 0;   }   int main() {     long long n;     cin >> n;     long long numSquare = 0;     multiset<long long> toMakeSquare;     multiset<long long> toMakeNonSquare;     for (long long i = 0; i < n; ++i) {       long long a;       cin >> a;       if (isSquare(a)) ++numSquare;       toMakeSquare.insert(calcCostToSquare(a));       toMakeNonSquare.insert(calcCostToNonSquare(a));     }     n /= 2;     long long result = 0;     if (numSquare < n) {       auto it = toMakeSquare.upper_bound(0);       while (numSquare < n) {         result += *it;         ++it;         ++numSquare;       }     } else {       auto it = toMakeNonSquare.upper_bound(0);       while (numSquare > n) {         result += *it;         ++it;         --numSquare;       }     }     cout << result << endl;   }   