这道题一开始本菜鸡一直在想怎么分段,然后发现不是很可行,所以就换了一个想法,在草稿纸上演绎了一下样例,然后发现有一个公式:
其中cnt1记录的是小于目标中位数,而cnt2是记录大于等于其目标中位数的个数
void solve()
{
ios;
int n;
cin>>n;
int m;
cin>>m;
int cnt1=0;
int cnt2=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
if(a[i]<m)
{
cnt1++;
}
else
{
cnt2++;
}
}
if(cnt2>cnt1)
{
cout<<cnt2-cnt1<<"\n";
}
else
{
cout<<"-1"<<"\n";
}
}