#include<cstdio> #include<map> using namespace std; map<int,int> mp[100005]; int main() { int i,j,k,m,n,t,w,p; int next[100005][2]; int visit[100005]={0}; double ans= 0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&next[i][0],&next[i][1]); next[i][0]--; } k=0; for(i=0;i<n;i++) { if(visit[i]) continue; j=i; while(1) { // printf("In from %d to %d\n", i,j); if(visit[j] == 1) { // printf("Find %d %d => %d\n",j,k, mp[k].find(j) == mp[k].end()); if( mp[k].find(j) != mp[k].end()) { // Found cycle // printf("Found %d\n",j); double pr=1; int jt= j; while(next[jt][0]!=j) { // printf("Found Loop %d %d %lf\n",jt, next[jt][0],pr); pr = (pr*next[jt][1])/100; jt = next[jt][0]; } pr = (pr*next[jt][1])/100; ans+= pr; } break; } visit[j]=1; mp[k][j] = 1; j = next[j][0]; } k++; } //printf("%lf\n",ans); ans = (ans*100); ans += (ans - ((int) ans) >= 0.5); ans = (int) ans; printf("%.2lf\n",ans/100); return 0; }