您的位置:首页 > 其它

hdu 6106.Classes

2017-10-18 18:20 274 查看

题目描述:

学校设立了三门选修课,假设这些课程是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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: