题意:有n个人,会说k种语言,其中ai个人会说第i种语言,问最少有多少人会同时说k种语言
一开始我还以为这是个容斥原理的题目,后来一想,贪心即可
后面和前面的交集进行比较,如果不会有交集,则退出,否则求出新的交集,继续计算
思路很巧妙,是个好题
#include <stdio.h>
int n,k;
int a[25];
int solve()
{
int x=a[0]+a[1]-n;
if(x<0)return 0;
for(int i=2;i<k;i++)
{
x=x+a[i]-n;
if(x<0)return 0;
}
return x;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=0;i<k;i++)
{
scanf("%d",&a[i]);
}
printf("%d\n",solve());
return 0;
}