#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; double ans; int visit[100005]; vector< vector< pair<int, int> > > X(100005); void dfs(int i, int k) { if(!visit[i]) { visit[i] = k; for(vector< pair<int, int> >::iterator it=X[i].begin(); it!=X[i].end(); it++) dfs(it->first, k); } else if(visit[i]==k) { int j = X[i][0].first; double tmp = 0.01*X[i][0].second; while(j!=i) { tmp*= 0.01*X[j][0].second; j = X[j][0].first; } ans+= tmp; } } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ int N; scanf("%d", &N); for(int i=1; i<=N; i++) { int a, b; scanf("%d %d", &a, &b); X[i].push_back(make_pair(a, b)); } ans = 0; int k = 1; for(int i=1; i<=N; i++) { if(!visit[i]) dfs(i, k++); } printf("%.2lf\n", ans); return 0; }