//vivekmufc

      #include<bits/stdc++.h>
      #include<string>
      using namespace std;

      typedef long long ll;
      typedef pair<int, double> ii;
      #define pb(x)                        push_back(x)
      #define endl                         '\n'
      #define INF                         (int)1e9
      int mod = 1000000007;

      #define N        100005

      int visit[N];
      int visit2[N];
      vector<ii> G[N];
      set<int> st;
      void dfs2(int x)
      {
            visit2[x] = 1;
            for (int i = 0; i < G[x].size(); ++i)
            {
                  int v = G[x][i].first;
                  if(visit2[v] == 1)
                        st.insert(v);
                  if(visit2[v]==0)
                        dfs2(v);
            }
            visit2[x] = 2;
      }     

      double dfs(int x)
      {
            visit[x] = 1;
            double ans  = 0;
            for (int i = 0; i < G[x].size(); ++i)
            {
                  int v = G[x][i].first;
                  if(visit[v] == 1)
                        return (G[x][i].second/100);
                  // cout<<x<<" "<<v<<" "<<G[x][i].second/100.0<<endl;
                  if(visit[v]==0)
                        ans += (G[x][i].second/100.0)*dfs(v);
            }
            visit[x] = 2;
            if(G[x].size()==0)
                  return 0.0;
            return ans;
      }


      int main()
      {
            std::ios::sync_with_stdio(false);
            // freopen("output.txt","w",stdout);
            int n;
            cin>>n;
            for (int i = 0; i < n; ++i)
            {
                  int x;
                  double prob;
                  cin>>x>>prob;
                  G[i+1].pb(ii(x,prob));
            }
            double ans = 0;
            for (int i = 1; i <= n; ++i)
            {
                  if(!visit[2])
                        dfs2(i);
            }
            set<int>::iterator it;
            for(it = st.begin();it !=st.end();++it)
            {
                  int x = *it;
                  if(!visit[x])
                        ans += dfs(x);
                  // cout<<x<<endl;
            }

            cout<<setprecision(2)<<fixed<<ans;
      }