#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> adj[100005];
long long v[200005];
long long u[200005];
long long w[200005];
int sz[200005];
void dfs(int xx, int pp) {
  sz[xx] = 1;
  for (int i : adj[xx]) {
    if (i == pp) {
      continue;
    }
    dfs(i, xx);
    sz[xx] += sz[i];
  }
}
int main() {
  cin >> n;
  for (int i = 1; i <= n - 1; i++) {
    cin >> v[i] >> u[i] >> w[i];
    adj[v[i]].push_back(u[i]);
    adj[u[i]].push_back(v[i]);
  }
  dfs(1, 0);
  long long sum = 0;
  for (int i = 1; i <= n - 1; i++) {
    if (sz[u[i]] < sz[v[i]]) {
      swap(u[i], v[i]);
    }
    sum += w[i] * sz[v[i]] * (n - sz[v[i]]);
  }
  cin >> m;
  for (int i = 1; i <= m; i++) {
    int e, val;
    cin >> e >> val;
    sum -= w[e] * sz[v[e]] * (n - sz[v[e]]);
    w[e] = val;
    sum += w[e] * sz[v[e]] * (n - sz[v[e]]);
    printf("%.10lf\n", 1.0 * 6 * sum / n / (n - 1));
  }
  return 0;
}
