hdu 6106.Classes

来源:互联网 发布:商户销售数据采集 编辑:程序博客网 时间:2024/06/14 23:15

题目描述:

学校设立了三门选修课,假设这些课程是A,B,C。N个班的学生参加了这些课程。 现在,学校要计算每班入读至少一门课程的学生人数,并记录其中人数的最大值。 每班上传7份资料,选择A的学生人数,选择B的学生人数,选择C的学生人数,同时选择AB的学生人数,同时选择BC的学生人数,同时选择AC的学生人数,同时选择ABC的学生人数。 根据这7个数据,学校可以计算这个班的学生人数。 然而,由于统计错误,一些数据是错误的,这些数据应该被忽略。 聪明的你必须知道如何编写一个程序来找到人数的最大值。

输入:

输入的第一行给出了测试样例T的数量; 测试样例如下。 每个案例以一行整数N开始,表示班级的数量。 然后N行,每行包含7个数据:a,b,c,d,e,f,g,表示本课程中选择A,B,C,AB,BC,AC,ABC的学生人数。 保证在每个测试用例中至少有一个班的数据是完全正确的。

范围 T≤100 1≤N≤100 0≤a,b,c,d,e,f,g≤100

输出:

对于每个测试用例,输出一行包含一个整数表示至少选择一门课程的学生的最大数量。

样例输入

2
2
4 5 4 4 3 2 2
5 3 1 2 0 0 0
2
0 4 10 2 3 4 9
6 12 6 3 5 3 2

样例输出

7
15

#include<stdio.h>#include<string.h>int main(){int t,n,sum,flag,maxn;int a[101][8];int i,j;scanf("%d",&t);while(t --){maxn = sum = 0;scanf("%d",&n);for(i = 0;i < n;i ++){for(j = 0;j < 7;j ++)scanf("%d",&a[i][j]);}for(i = 0;i < n;i ++){a[i][3] -= a[i][6];a[i][4] -= a[i][6];a[i][5] -= a[i][6];if(a[i][3] < 0 || a[i][4] < 0 || a[i][5] < 0)continue;a[i][0] -= a[i][3]+a[i][5]+a[i][6];a[i][1] -= a[i][3]+a[i][4]+a[i][6];a[i][2] -= a[i][4]+a[i][5]+a[i][6];if(a[i][0] < 0 ||a[i][1] < 0 ||a[i][2] < 0 )continue;for(j = 0;j < 7;j ++)sum += a[i][j];if(maxn < sum)maxn = sum;sum = 0;}printf("%d\n",maxn);}return 0;}


原创粉丝点击