【链接】http://acm.hdu.edu.cn/showproblem.php?pid=6106
【题意】
给出选 A,B,C,AB,AC,BC,ABC 课程的学生,其中 AB 是 A 和 B 都选….,确定该班级的人数,给出的数据中有一些数错误的,但保证一组正确答案,输出最多的班级的人数
【题解】
除了ab<=a,ac<=c...那些常见的限制之外
如下图,还有1+4+2<=a以及1+4+3<=b....
【错的次数】
0
【反思】
在这了写反思
【代码】
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int T,n,ans;
int a,b,c,ab,bc,ac,abc;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
ans=0;
while(n--)
{
scanf("%d%d%d%d%d%d%d",&a,&b,&c,&ab,&bc,&ac,&abc);
if(ab<=a&&ab<=b&&bc<=b&&bc<=c&&ac<=a&&ac<=c
&&abc<=ab&&abc<=bc&&abc<=ac
&&ac+ab-abc<=a&&ac+bc-abc<=c&&ab+bc-abc<=b)
{
if(a+b+c-ab-bc-ac+abc>ans)
ans=a+b+c-ab-bc-ac+abc;
}
}
printf("%d
",ans);
}
return 0;
}