很明显若是在一个环内,无论怎样传递都会在此环内传递不会出去,所以只需要找环即可
因为即使有一个顺序而去的求所传递的方向,到达最后一个球时因为没有球所传递,所以又会传回去,所以一定有环
按照题意去寻找距离其最近的,所以我们可以知道其实原位置无意义
我们可以进行排序一下,我们可以发现若想有环,一定是两头牛成环,将会浪费一个球
然而每个环可能由两个方向产生,
所以存在一个环,是由两个方向传过来的,这个时候会浪费两个
#include<iostream>
#include<algorithm>
using namespace std;
const int N=110;
int g[N];
bool st[N];
int n,res;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>g[i];
sort(g+1,g+1+n);
st[n]=true;
for(int i=2;i<n;i++)
{
if(g[i]-g[i-1]<=g[i+1]-g[i])st[i]=true;
}
for(int i=1;i<=n;i++)
{
if(st[i]&&!st[i-1])
{
res++;
if(i-2>=1&&!st[i-2]&&i+1<=n&&st[i+1])res++;
}
}
cout<<res;
return 0;
}