1211. 蚂蚁感冒
传送
题解:解本题的关键就是:将题目描述中两只蚂蚁同时掉头往相反方向爬行看成相互穿过,然后在分类讨论即可
#include<bits/stdc++.h>
using namespace std;
int n,a[100],num[110];
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
num[abs(a[i])] = a[i];
}
int ans=1;
if(a[0]<0){ // 初始感冒的蚂蚁头朝左;
for(int i=0;i<abs(a[0]);i++){
if(num[i] > 0 ) ans++;
}
if(ans>1)
for(int i=abs(a[0])+1;i<=99;i++){
if(num[i] < 0 ) ans++;
}
cout<<ans<<endl;
}
else {
if(a[0]>0){ // 初始感冒的蚂蚁头朝右;
for(int i=abs(a[0])+1;i<=99;i++){
if(num[i] < 0 ) ans++;
}
if(ans>1)
for(int i=0;i<abs(a[0]);i++){
if(num[i] > 0 ) ans++;
}
cout<<ans<<endl;
}
}
return 0;
}