算法1
思路:第一个蚂蚁向右走的情况:
1.右边向左走的,必然被感染
2.右边向右走,必然不会被感染
3.左边向左走,必然不会被感染
4.左边向右走:
(1))右边存在向左走,则必然被感染
(2)右边不存在向左走,则必然不会被感染
分析
right>0 left+right+1
right==0 1
left>0 left+right+1
left==0 1
C++ 代码
#include<iostream>
#include<cstdio>
using namespace std;
const int N=55;
int n;
int x[N];
int main(){
cin>>n;
for(int i=0;i<n;i++)cin>>x[i];
int left=0,right=0;//分别表示左边向右走的蚂蚁数量,和右边向左走的蚂蚁数量
for(int i=1;i<n;i++){
if(abs(x[i])<abs(x[0]) &&x[i]>0) left++;//abs(x[i])<abs(x[0]) 表示在左边,x[i]>0表示向左走
else if(abs(x[i])>abs(x[0]) &&x[i]<0)right++;
}
if(x[0]>0 && right==0||x[0]<0 &&left==0) //详细看分析那步
cout<<1<<endl;
else cout<<left+right+1<<endl;
return 0;
}