什么时候无解?
有解计算
code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[200005]={0};
int main()
{
ll t;
cin>>t;
while(t--)
{
ll n,k;
cin>>n>>k;
ll zs=0,fs=0;
for(ll i=1;i<=n;i++)
{
cin>>a[i];
a[i]-=k;
if(a[i]>0)zs++;
else if(a[i]<0)fs++;
}
if(zs&&fs||zs+fs>0&&zs+fs<n)
{
puts("-1");
continue;
}
if(zs+fs==0)
{
puts("0");
continue;
}
ll b=a[1];
for(int i=2;i<=n;i++)b=__gcd(b,a[i]);
ll ans=0;
if(b)for(int i=1;i<=n;i++)ans+=a[i]/b-1;
cout<<ans<<endl;
}
return 0;
}
标签:fs,ll,long,Plus,Split,zs
From: https://www.cnblogs.com/pure4knowledge/p/17933302.html