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