#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 47;
vector<int> g[N];
int tin[N], tout[N];
int dist[N];
int T = 0;
void dfs(int v, int p = -1, int h = 0)
{
dist[v] = h;
tin[v] = T++;
for (int to : g[v])
{
if (to != p)
dfs(to, v, h + 1);
}
tout[v] = T++;
}
bool is_ancestor(int v, int u)
{
return tin[v] <= tin[u] && tout[v] >= tout[u];
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n - 1; i++)
{
int u, v;
cin >> u >> v;
u--; v--;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(0);
int q;
cin >> q;
for (int i = 0; i < q; i++)
{
int u, v;
cin >> u >> v;
u--; v--;
if (dist[u] < dist[v])
{
cout << dist[v] - dist[u] << '\n';
}
else
{
int ans = dist[u] - dist[v];
if (!is_ancestor(v, u))
ans += 2;
cout << ans << '\n';
}
}
return 0;
}