題意:有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;
}