func_code_string: #include <bits/stdc++.h>   int n, k, a, b, p, na;   std::vector<int> avg;   long long f(int l, int r) {     auto it1 = std::upper_bound(avg.begin(), avg.end(), r);     auto it2 = std::lower_bound(avg.begin(), avg.end(), l);     if (it2 != avg.end())       na = it1 - it2;     else       na = 0;     long long ans;     if (na)       ans = 1LL * b * na * (r - l + 1);     else       ans = a;     if (na && r != l)       ans = std::min(ans, f(l, (l + r) / 2) + f((l + r) / 2 + 1, r));     return ans;   }   int main() {     scanf( %d%d%d%d , &n, &k, &a, &b);     for (int i = 0; i < k; i++) {       scanf( %d , &p);       avg.push_back(p - 1);     }     std::sort(avg.begin(), avg.end());     printf( %lld n , f(0, (1 << n) - 1));     return 0;   }   