func_code_string: #include <bits/stdc++.h>   using namespace std;   inline void FAST_IO() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);   }   const int N = 3e5 + 5;   long long n, k, A, B;   long long a[N];   inline long long dfs(long long l, long long r) {     long long now = upper_bound(a, a + k, r) - lower_bound(a, a + k, l);     if (now == 0) return A;     if (l == r) return (now == 0 ? A : now * B);     long long mid = (l + r) >> 1;     long long sum = dfs(l, mid) + dfs(mid + 1, r);     sum = now * B * (r - l + 1) > sum ? sum : now * B * (r - l + 1);     return sum;   }   signed main() {     FAST_IO();     cin >> n >> k >> A >> B;     for (int i = 0; i < k; i++) {       cin >> a[i];     }     sort(a, a + k);     cout << dfs(1ll, 1ll << n) <<   n ;     return 0;   }   