题目链接

https://codeforces.com/problemset/problem/1419/C

解题思路

总共三种情况0,1,2
分情况讨论一下。
1.全都是x时,0
2.存在x或全部之和为n*x时,1
3.其他情况,2

代码

// 废物代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;

int T, a[N], f, sum, n, x, ff;

int main()
{
    cin>>T;
    while(T--) {
        f = 0;
        ff = 0;
        sum = 0;
        cin>>n>>x;
        for(int i = 1;i <= n;i ++) cin >> a[i], sum += x-a[i];
        for(int i = 1;i <= n;i ++) {
            if(a[i] != a[1]) {
                f = 1;
            }
            if(a[i] == x) {
                ff = 1;
            }
        }


        if(!sum) {
            if(f) cout << 1 << endl;
            else cout << 0 << endl;
        } else {
            if(ff) cout << 1 << endl;
            else cout << 2 << endl;
        }

    } 

    return 0;
}

/*
// 大佬代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 2e5+10;
int a[maxn];
int main(){
    ios::sync_with_stdio(false);
    int T;  cin>>T;
    while(T--){
        int n, x;  cin>>n>>x;
        int cnt = 0, sum = 0;
        for(int i = 1; i <= n; i++){
            cin>>a[i];  if(a[i]==x)cnt++;
            sum += a[i];
        }
        if(cnt==n)cout<<0<<"\n";
        else if(cnt>=1 || sum==n*x)cout<<1<<"\n";
        else cout<<2<<"\n";
    }
    return 0;
}
*/

总结

少考虑了存在x的情况了。