#include <bits/stdc++.h>
char temp[300005];
bool line[300005];
long long int cost[300005] = {
    0,
};
long long int min(long long int a, long long int b) {
  if (a > b)
    return b;
  else
    return a;
}
int main(void) {
  long long int n, x, y;
  scanf("%lld %lld %lld", &n, &x, &y);
  scanf("%s", temp);
  for (int i = 0; i < n; i++) line[i] = (temp[i] == '1');
  cost[0] = 0;
  cost[1] = y;
  for (int i = 2; i <= n; i++) {
    cost[i] = min(cost[i - 1] + x, cost[i - 1] + y);
  }
  int zoomcount = 0;
  for (int i = 0; i < n; i++) {
    while (i < n && line[i]) i++;
    if (i >= n) break;
    zoomcount++;
    while (i < n && !line[i]) i++;
    if (i >= n) break;
  }
  printf("%lld", cost[zoomcount]);
  return 0;
}
