#include <bits/stdc++.h>
using namespace std;
vector<long long int> adj[100010];
long long int dp[100010], v[100010];
vector<pair<long long int, long long int> > vect;
void dfs(long long int s, long long int t) {
  long long int i, p;
  dp[s] = 1;
  for (i = 0; i < adj[s].size(); i++) {
    p = adj[s][i];
    if (p == t) continue;
    dfs(p, s);
    dp[s] += dp[p];
  }
}
long long int fn(long long int a, long long int b) {
  if (a < b)
    return a;
  else
    return b;
}
int main() {
  long long int n, i, x, y, z, k, q;
  long double ans, w, cnt;
  scanf("%lld", &n);
  w = n * (n - 1);
  for (i = 1; i < n; i++) {
    scanf("%lld%lld%lld", &x, &y, &z);
    v[i] = z;
    vect.push_back(pair<long long int, long long int>(x, y));
    adj[x].push_back(y);
    adj[y].push_back(x);
  }
  dfs(1, 0);
  for (i = 1; i < n; i++) {
    pair<long long int, long long int> p;
    p = vect[i - 1];
    k = fn(dp[p.first], dp[p.second]);
    cnt = (k * (k - 1) * (n - k) + k * (n - k) * (n - k - 1)) / w;
    cnt = cnt * 6 * (v[i]) / (n - 2);
    ans += cnt;
  }
  scanf("%lld", &q);
  for (i = 0; i < q; i++) {
    scanf("%lld%lld", &x, &z);
    pair<long long int, long long int> p;
    p = vect[x - 1];
    k = fn(dp[p.first], dp[p.second]);
    cnt = (k * (k - 1) * (n - k) + k * (n - k) * (n - k - 1)) / w;
    cnt = cnt * 6 * (v[x] - z) / (n - 2);
    v[x] = z;
    ans -= cnt;
    printf("%Lf\n", ans);
  }
  return 0;
}
