#include <bits/stdc++.h>
using namespace std;
const int maxn = 300005;
const long long inf = 1000000000000000LL;
template <typename T>
inline void _read(T& x) {
  char ch = getchar();
  bool sign = true;
  while (!isdigit(ch)) {
    if (ch == '-') sign = false;
    ch = getchar();
  }
  for (x = 0; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';
  if (!sign) x = -x;
}
int n, x, y;
char s[maxn];
long long f[maxn];
int main() {
  int i, j, k, pos = 0;
  cin >> n >> x >> y;
  scanf("%s", s + 1);
  for (i = 1; i <= n; i++) f[i] = inf;
  for (i = 1; i <= n; i++) {
    if (s[i] == '1' || (s[i] == '0' && s[i - 1] == '0'))
      f[i] = f[i - 1];
    else {
      f[i] = min(f[i], f[i - 1] + y);
      if (pos != 0) f[i] = min(f[i], f[pos] + x);
    }
    if (s[i] == '0') pos = i;
  }
  cout << f[n];
}
