#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000001;
int x, y;
long long int A, B, C;
int sz[MAXN];
vector<int> lista[MAXN];
int valid[MAXN];
int dfs(int u, int p = -1) {
  int ans = (u == y);
  sz[u] = 1;
  for (int i = 0; i < lista[u].size(); i++) {
    int v = lista[u][i];
    if (v != p) {
      int res = dfs(v, u);
      sz[u] += sz[v];
      ans = max(ans, res);
    }
  }
  return valid[u] = ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, a, b;
  cin >> n >> x >> y;
  x--, y--;
  for (int i = 0; i < n - 1; i++) {
    cin >> a >> b;
    a--, b--;
    lista[a].push_back(b);
    lista[b].push_back(a);
  }
  dfs(x);
  B = n - sz[y];
  A = sz[y];
  long long int ans = (B * B - B) + (A * A - A);
  ans += A * B;
  int f = 0;
  for (int i = 0; i < lista[x].size(); i++) {
    int v = lista[x][i];
    if (valid[v]) {
      assert(f == 0);
      C = sz[v] - sz[y];
      f = 1;
    }
  }
  ans += C * A;
  cout << ans << '\n';
  return 0;
}
