蚂蚁碰头
可以等价于穿过
分四类讨论
(1)右边向左走 必然被感染
(2)右边向右走 必然不被感染
(3)左边向左走 必然不被感染
(4)左边向右走
1> 右边存在向左走 必然被感染
2> 右边不存在向左走 必然不被感染
如果第一只蚂蚁向右爬 ——
if——右边向左的为0 答案为 1(第一只)
if——右边向左的>0 答案为left+right+1如果第一只蚂蚁向左爬——
if——左边向右的为0 答案为1
if——左边向右的>0 答案为left+right+1
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=100;
int a[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int left=0,right=0;//left表示从左向右爬的蚂蚁数量 right表示从右向左爬的蚂蚁数量
for(int i=0;i<n;i++){
if( abs(a[i])>abs(a[0]) && a[i]<0 ) right++;
if( abs(a[i])<abs(a[0]) && a[i]>0 ) left++;
}
if(a[0]>0&&right==0 || a[0]<0&&left==0) cout<<1<<endl;
else cout<<left+right+1<<endl;
return 0;
}