func_code_string: #include <bits/stdc++.h>   using namespace std;   int dp[2][100010], bit, n;   long long a[100010];   inline int comp(long long x, long long y) {     return (x % (1ll << (bit + 1))) > (y % (1ll << (bit + 1)));   }   int main() {     long long mx = 0;     scanf( %d , &n);     for (int i = 0; i < n; i++) {       scanf( %lld , &a[i]);       mx = max(mx, a[i]);     }     int cur = 0;     memset(dp, 0x3f, sizeof(dp));     dp[0][0] = 0;     for (int i = 0; i < 63; i++) {       cur ^= 1;       int cnt1 = 0, cnt2 = 0;       memset(dp[cur], 0x3f, sizeof(dp[cur]));       for (int j = 0; j < n; j++) {         if (a[j] & (1ll << i)) cnt2++;       }       for (int j = 0; j <= n; j++) {         if (dp[cur ^ 1][j] != 0x3f3f3f3f) {           dp[cur][j + cnt2] =               min(dp[cur][j + cnt2], dp[cur ^ 1][j] + j - cnt1 + cnt2);           dp[cur][cnt1] =               min(dp[cur][cnt1], dp[cur ^ 1][j] + cnt1 + (n - j - cnt2));         }         if (a[j] & (1ll << i)) {           cnt1++;           cnt2--;         }       }       if ((1ll << i) > mx) break;       bit = i;       sort(a, a + n, comp);     }     printf( %d n , dp[cur][0]);     return 0;   }   