func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int n, k, a, b;   vector<long long int> arr;   long long int rec(long long int l, long long int r) {     long long int i = lower_bound(arr.begin(), arr.end(), l) - arr.begin();     long long int j = upper_bound(arr.begin(), arr.end(), r) - arr.begin();     long long int x = j - i;     long long int val;     if (x == 0) {       val = a;     } else {       val = b * x * (r - l + 1);     }     if (l == r || x == 0) {       return val;     }     long long int mid = (l + r) / 2;     return min(val, rec(l, mid) + rec(mid + 1, r));   }   int main() {     cin >> n >> k >> a >> b;     for (int i = 0; i < k; i++) {       int x;       cin >> x;       arr.push_back(x);     }     sort(arr.begin(), arr.end());     long long int start = 1;     long long int end = pow(2, n);     cout << rec(start, end) << endl;   }   