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 }