1211. 蚂蚁感冒(思维)

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;
}
发布了31 篇原创文章 · 获赞 2 · 访问量 1456

猜你喜欢

转载自blog.csdn.net/weixin_44851176/article/details/104639817