C-苗苗的气球_牛客周赛 Round 47 (nowcoder.com)
这道题注意审题,我刚开始想着怎么消也不会有4种情况呀:
第一种情况:3和4消掉,最后剩下2 2,那就是剩下一种气球.
第二种情况:2先和3消掉,剩下2,4,再消掉.最后剩下0个气球
这个其实就是我没审清题,题目的意思实际上说的是a[i]代表第i种颜色的气球的个数.
也就是a种气球的数量是2,b种气球的数量也是2,c种气球的数量是3,d种气球的数量是4:
按照这种方式来消.
那么这道题就要分类讨论了.
code
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int a[N];
int sum;
int maxn;
signed main()
{
cin.tie(nullptr)->sync_with_stdio(0);
int n;cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
maxn=max(maxn,a[i]);
}
//枚举每一个a[i],判断除了a[i]外的剩下的不同颜色气球种类个数的奇偶性
int kinds=0;
for(int i=1;i<=n;i++)
{
if((sum-a[i])%2==0 || ((sum-a[i])%2==1 && a[i]>1))
{
kinds++;
}
} //判断颜色相同的气球种类数量和不相同的数量是否相等
if(maxn>sum-maxn) cout<<1<<endl;
else if(maxn==sum-maxn) cout<<0<<endl;
else cout<<kinds<<endl;
return 0;
}