#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;
}