#include <bits/stdc++.h>
using namespace std;
const int N=100005;
typedef long long ll;
struct to{
    ll l,t;
};
vector<to> mp[N];
ll dis[N];
void dfs(ll u,ll fa){
    for(ll i=0; i<mp[u].size(); i++){
        ll v=mp[u][i].t;
        if(v==fa) continue;
        dis[v]=dis[u]+mp[u][i].l;
        dfs(v,u);
    }
    return;
}
int main(){
    ll n,a,b,c,q,k,x,y;
    cin>>n;
    for(ll i=1; i<n; i++){
        cin>>a>>b>>c;
        mp[a].push_back((to){c,b});
        mp[b].push_back((to){c,a});
    }
    cin>>q>>k;
    dfs(k,0);
    for(ll i=0; i<q; i++){
        cin>>x>>y;
        cout<<dis[x]+dis[y]<<endl;
    }
    return 0;
}