HDU 6106 Classes (简单集合运算 17多校第六场)

来源:互联网 发布:杭州半包价格2017 知乎 编辑:程序博客网 时间:2024/06/05 12:04

题目链接

2017多校第六场1011题

题目大意

有A、B、C三门课,输入n个班级中分别选了A B C AB BC AC ABC课的人数,求n个班级中至少报名了1节课的人数的最大值。

分析

签到题。画韦恩图分析即可,要注意韦恩图每部分都得大于等于0。

代码

#include <iostream>#include <cstdio>using namespace std;int main(){    int T,a,b,c,d,e,f,g,s1,s2,s3,s4,s5,s6,n,ans;    scanf("%d",&T);    while (T--)    {        scanf("%d",&n);        ans=0;        for (int i=1;i<=n;i++)        {            scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g);            s4=d-g;if (s4<0) continue;            s5=f-g;if (s5<0) continue;            s6=e-g;if (s6<0) continue;            s1=a-s4-s5-g;if (s1<0) continue;            s2=b-s4-s6-g;if (s2<0) continue;            s3=c-s5-s6-g;if (s3<0) continue;            int t=s1+s2+s3+s4+s5+s6+g;            ans=max(ans,t);        }        printf("%d\n",ans);    }    return 0;} 
原创粉丝点击