1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 using namespace std;
5 const int INF=0xfffffff;
6 struct node
7 {
8 int b,p;
9 };
10 node a[110][110];
11 int m[110];
12 int pmin,psum,bmax,n;
13 double ans;
14 int main()
15 {
16 int T;
17 scanf("%d",&T);
18 for (int t=1;t<=T;t++)
19 {
20 memset(a,0,sizeof(a));
21 memset(m,0,sizeof(m));
22 ans=0.0;
23 scanf("%d",&n);
24 for (int i=1;i<=n;i++)
25 {
26 scanf("%d",&m[i]);
27 for (int j=1;j<=m[i];j++)
28 {
29 scanf("%d%d",&a[i][j].b,&a[i][j].p);
30 }
31 }
32 for (int i=1;i<=n;i++)
33 for (int j=1;j<=m[i];j++)
34 {
35 bmax=a[i][j].b;
36 bool flag=0;
37 psum=a[i][j].p;
38 for (int k=1;k<=n;k++)
39 {
40 if (k==i) continue;
41 pmin=INF;
42 for (int q=1;q<=m[k];q++)
43 if (a[k][q].b>=bmax && a[k][q].p<pmin)
44 {
45 pmin=a[k][q].p;
46 // flag=1;
47 }
48 // if (!flag) break;
49 psum+=pmin;
50 }
51 // if (!flag) break;
52 if (ans<(double)bmax/psum) ans=(double)bmax/psum;
53 }
54 printf("%.3f\n",ans);
55 }
56 return 0;
57 }