import sys input = sys.stdin.readline from collections import * def bfs(s, g): q = deque([s]) dist = [-1]*N dist[s] = 0 while q: v = q.popleft() for nv in G[v]: if dist[nv]==-1: dist[nv] = dist[v]+1 q.append(nv) return dist[g]!=-1 N = int(input()) ans = 0.0 decr = [] for i in range(N): L, S = map(int, input().split()) ans += L decr.append((L/2, S-1, i)) decr.sort(reverse=True) G = [[] for _ in range(N)] for d, i, j in decr: if not bfs(i, j): ans -= d G[j].append(i) print(ans)