1 /*谁获得了最高奖学金
 2 时间限制:1000 ms  |  内存限制:65535 KB
 3 难度:2
 4 描述
 5     某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:
 6   1) 院士奖学金,每人8000元,期末平均成绩 高于80分(>80),并且在本学期内发表   1篇或1篇以上论文    的学生均可获得;
 7   2) 五四奖学金,每人4000元,期末平均成绩 高于85分(>85),并且   班级评议成绩   高于80分(>80)的学生均可获得;
 8   3) 成绩优秀奖,每人2000元,期末平均成绩 高于90分(>90)的学生均可获得;
 9   4) 西部奖学金,每人1000元,期末平均成绩  高于85分(>85)的    西部省份学生    均可获得;
10   5) 班级贡献奖,每人850元,  班级评议成绩   高于80分(>80)的     学生干部     均可获得;
11   只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,
12 同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。
13   现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。
14 输入
15 第一行输入数据N,表示测试数据组数(0<N<100),每组测试数据输入的第一行是一个整数X(1 <= X <= 100),表示学生的总数。
16 接下来的X行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。
17 姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);
18 是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。
19 每两个相邻数据项之间用一个空格分隔。
20 输出
21   每组测试数据输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,
22 输出他们之中在输入文件中出现最早的学生的姓名。第三行是这X个学生获得的奖学金的总数。
23 样例输入
24 1
25 4
26 YaoLin 87 82 Y N 0
27 ChenRuiyi 88 78 N Y 1
28 LiXin 92 88 N N 0
29 ZhangQin 83 87 Y N 1
30 样例输出
31 ChenRuiyi
32 9000
33 28700
34 来源
35 NOIP2005
36 上传者
37 hzyqazasdf
38 */ 
39 #include<stdio.h>
40 #include<string.h>
41 int main()
42 {
43     int T;
44     scanf("%d",&T);
45     while(T--)
46     {
47          int x, q, w, e, max, sum, scholarship;
48          char a[21], b[2], c[2], d[21];
49          scanf("%d", &x );
50          getchar();
51          max=sum=0;
52          while( x-- )
53          {
54                 scholarship = 0;
55                 scanf("%s%d%d%s%s%d", a , &q , &w , b , c , &e);
56                 if(q > 80 && e>0)
57                 scholarship += 8000;
58                 if(q > 90)
59                 scholarship += 2000;
60                 if(q > 85)
61                 {
62                     if(w > 80)
63                         scholarship += 4000;
64                     if(c[0] == 'Y')
65                         scholarship+=1000;
66                 }
67                 if(w>80 && b[0] == 'Y')
68                     scholarship += 850;
69                 if(scholarship > max)
70                 {
71                     max=scholarship;
72                     strcpy(d,a);
73                 }
74                 sum+=scholarship;
75         }
76         printf("%s\n%d\n%d\n",d,max,sum);
77     }
78     return 0;
79 }