func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, k, A, B;   vector<long long> a(100000 + 5);   long long rec(int l, int r) {     long long m = (l + r) / 2, i, j, col = 0, lng = r - l + 1;     i = lower_bound(a.begin(), a.end(), l) - a.begin();     j = upper_bound(a.begin(), a.end(), r) - a.begin();     j--;     col = j - i + 1;     if (l == r && !col) return A;     if (l == r && col) return B * col;     if (!col) return A;     return min(B * lng * col, rec(l, m) + rec(m + 1, r));   }   int main() {     long long x;     cin >> n >> k >> A >> B;     for (int i = 0; i < k; i++) {       cin >> x;       a.push_back(x);     }     sort(a.begin(), a.end());     cout << rec(1, pow(2, n));     return 0;   }   