1

#include <iostream>
2

#include <set>
3

#include <algorithm>
4

using namespace std;
5

6

struct Device
7

{
8

int nChoice;
9

int quality[102][2];
10

};
11

12

int main()
13

{
14

int ncase;
15

cin >> ncase;
16

while ( ncase-- ){
17

18

int n;
19

double ratio = 0;
20

set <int> intSet;
21

set <int>::iterator sp;
22

cin >> n;
23

Device *s = new Device[n];
24
25

for( int i = 0; i < n; i++ ) {
26

cin >> s[i].nChoice;
27

for( int j = 0; j < s[i].nChoice; j++ ){
28

cin >> s[i].quality[j][0] >> s[i].quality[j][1];
29

intSet.insert( s[i].quality[j][0] );
30

}
31

}
32
33

for( sp = intSet.begin(); sp != intSet.end(); sp++ ){
34

int totalPrice = 0;
35

int minBand = *sp;
36

for( int i = 0; i < n; i++){//选每一种产品
37
int min = 100000;38

for( int j = 0; j < s[i].nChoice; j++ ){
39

if( s[i].quality[j][0] >= minBand && min > s[i].quality[j][1] )
40

min = s[i].quality[j][1];
41

}
42

totalPrice += min;
43

}
44

if( ratio < (double) (minBand) / (double) totalPrice ){
45

ratio = (double) (minBand) / (double) totalPrice;
46

}
47

}
48

printf( "%.3lf\n", ratio );
49

50

delete s;
51

}
52

system("pause");
53

return 0;
54

}
55
