zufeoj NO.1(结构体简单题)

 NO.1

时间限制: 1 Sec  内存限制: 128 MB
提交: 457  解决: 172
[提交][状态][讨论版]

题目描述

 

    所谓NO.1,就是所有成绩都排在第一的同学,我们假设每个人只有理科,文科,体育这三门课。

我们现在假设某门成绩并列第一,并列的人都是这门功课第一名,并且保证数据不会出现2个NO.1

现给定n个人的信息,输出第一面的名字。

输入

多组数据,输入文件第一行为一个整数T,代表测试数据数。 (T<50)

接下来T个测试数据。  

每个测试数据的的第一行为一个整数n(n<=100),接下来有n行,每行的格式如下: 

名字 理科成绩 文科成绩 体育成绩 (数值越高代表成绩越好).

名字长度不超过20,3个成绩的为正整型.

输出

对于每个测试数据,输出NO.1的名字,如果不存在第一名,就输出"NO NO.1".

样例输入

3
2
lvhao 2 2 2
xiaoshua 1 1 1
2
lvhao 4 4 4
xiaoshua 4 4 3
3
lvhao 3 4 5
xiaoshua 1 3 1
pan 4 1 5

样例输出

lvhao
lvhao
NO NO.1

 1 #include <iostream>
 2 #include <cstring>
 3 #include <string>
 4 #include <algorithm>
 5 #include <queue>
 6 using namespace std;
 7 struct node
 8 {
 9     string s;
10     int a,b,c;
11 }k[105];
12 int main()
13 {
14     int t;
15     while(cin>>t)
16     {
17         while(t--)
18         {
19             int n;
20             cin>>n;
21             node ma;
22             ma.a=ma.b=ma.c=-1;
23             for(int i=1;i<=n;i++)
24             {
25                 cin>>k[i].s>>k[i].a>>k[i].b>>k[i].c;
26                 if(ma.a<=k[i].a&&ma.b<=k[i].b&&ma.c<=k[i].c)//先挑出都大的
27                 {
28                     ma.a=k[i].a;ma.b=k[i].b;ma.c=k[i].c;
29                     ma.s=k[i].s;
30                 }
31             }
32             int i;
33             for(i=1;i<=n;i++)
34             {
35                 if(ma.a<k[i].a||ma.b<k[i].b||ma.c<k[i].c)//一旦还有大的,就是无解
36                 {
37                     break;
38                 }
39             }
40             if(i!=n+1)
41                 cout<<"NO NO.1"<<endl;
42             else
43                 cout<<ma.s<<endl;
44         }
45     }
46     return 0;
47 }

 

 
posted on 2018-03-06 22:33  蔡军帅  阅读(311)  评论(0编辑  收藏  举报