#include <bits/stdc++.h>
using namespace std;
template <class T>
bool ckmin(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
long long solve(string second, long long cRev, long long cRep) {
  long long numBlocks = 0;
  for (int i = 0; i < (int)second.size(); i++) {
    if (second[i] == '0') {
      if (i == 0 || second[i - 1] == '1') {
        numBlocks++;
      }
    }
  }
  if (numBlocks == 0) return 0;
  return min((numBlocks - 1) * cRev + cRep, numBlocks * cRep);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  long long cRev, cRep;
  cin >> cRev >> cRep;
  string second;
  cin >> second;
  long long ans = solve(second, cRev, cRep);
  for (int i = 0; i < n; i++) {
    if (second[i] == '0')
      second[i] = '1';
    else
      second[i] = '0';
  }
  ckmin(ans, cRep + solve(second, cRev, cRep));
  return cout << ans << '\n', 0;
  ;
}
