蓝桥杯 历届试题 蚂蚁感冒

来源:互联网 发布:网络的监控摄像头 编辑:程序博客网 时间:2024/04/28 03:10
分析:
(1)因为只计算数量,所以蚂蚁是掉头还是直接向前走对本题没有影响
(2)如果感冒的蚂蚁方向向左:
              在它左边的蚂蚁:如果向右,则会感染;如果向左则不会感染
              在它右边的蚂蚁:如果向右,则不会感染                   
                          如果向左:(1)如果感冒的那只蚂蚁左边有向右的蚂蚁,他会掉头,则右边向左的蚂蚁会感冒
                         (2)如果感冒的那只蚂蚁左边没有向右的蚂蚁,感冒的这只蚂蚁会一直向前走,右边的所有每一只蚂蚁不会感冒
(3)同理该蚂蚁向右

总结:找出左边向右,右边向左的蚂蚁数量,若该蚂蚁向右判断右边是否有向左的蚂蚁,如果该蚂蚁向左,判断左边是否有向右的蚂蚁


#include<iostream>#include<cmath>  using namespace std; #define MAX 50int ant[MAX]; int main(){int n; cin>>n; int left=0,right=0;  for (int i=0;i<n;i++){ cin>>ant[i];  } int h=abs(ant[0]); for (int i=1;i<n;i++) { if (ant[i]>0&&abs(ant[i])<h)left++; else if (ant[i]<0&&abs(ant[i])>h) right++; } if ((left==0&&ant[0]>0)||(right==0&&ant[0]<0))   cout<<1<<endl; else cout<<left+right+1<<endl;  return 0; }


0 0
原创粉丝点击