1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<climits>
using namespace std;
int auto_input = 1;
int main(){

    if(auto_input){
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    }

    bool first = true;
    double bid[1100];
    int n, p, i, j, max_prov, id_max_prov, run=1, prov[1100];
    char tmp[90], comp[1100][90];

    while(scanf("%d %d", &n, &p)!=EOF){
        if(n==0 && p==0) break;
        if(!first) cout << "\n";
        first=false;

        getchar();
        for(i=0 ; i<n ; i++) gets(tmp);

        max_prov=0;
        for(i=0 ; i<1100 ; i++){
            memset(comp[i], '\0', sizeof(comp[i]));
            prov[i] = 0;
            bid[i] = LLONG_MAX;
        }

        for(i=0 ; i<p ; i++){
            cin >> comp[i];
            cin >> bid[i] >> prov[i];
            getchar();
            for(j=0 ; j<prov[i] ; j++) gets(tmp);
            if((prov[i]==max_prov && bid[i]<bid[id_max_prov])||
               (prov[i]>max_prov)){
                max_prov = prov[i];
                id_max_prov = i;
            }
        }
        cout << "RFP #" << run << endl;
        cout << comp[id_max_prov] << endl;
        run++;
    }
    if(auto_input){
        fclose(stdin);
        fclose(stdout);
    }
    return 0;
}