# Input N = int(input()) L = [ None ] * N S = [ None ] * N for i in range(N): L[i], S[i] = map(int, input().split()) S[i] -= 1 # Calculation answer = sum(L) visited = [ -1 ] * N for i in range(N): if visited[i] != -1: continue pos = i while visited[pos] == -1: visited[pos] = i pos = S[pos] if visited[pos] == i: min_increase = L[pos] tpos = S[pos] while tpos != pos: min_increase = min(min_increase, L[tpos]) tpos = S[tpos] answer += min_increase # Output print(f'{answer / 2:.1f}')