func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, k, A, B;   long long arr[100000];   long long solve(long long l, long long r, long long depth, long long add) {     if (l == r) return A;     if (depth == 0) return B * (r - l);     long long mid =         lower_bound(arr + l, arr + r, (1 << (depth - 1)) + add) - (arr);     return min(B * (r - l) * (1 << depth),                solve(l, mid, depth - 1, add) +                    solve(mid, r, depth - 1, add + (1 << (depth - 1))));   }   int32_t main() {     cin >> n >> k >> A >> B;     for (long long i = 0; i < k; ++i) cin >> arr[i];     sort(arr, arr + k);     cout << solve(0, k, n, 1) <<   n ;   }   