【2017 Multi-University Training Contest - Team 6】Classes

【链接】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\n",ans);
    }
    return 0;
}


posted @ 2017-10-04 18:44  AWCXV  阅读(116)  评论(0编辑  收藏  举报