返回题解分享
讨论 / 题解分享/ 帖子详情

蚂蚁感冒(编程题) - 题解

#include<iostream>


#include<algorithm>
#include<math.h>
using namespace std;
int n;
int sum=1;
const int N=50;
int a[N];
int main(){
int point=-1;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
if(i==0){
point=a[i];
}
}
//如果有病蚂蚁向右爬
if(point>0){
//把在蚂蚁前面的且往左走的全部算上
int k=0;
for(int i=1;i<n;i++){
if(a[i]<0&&abs(a[i])>point) k++;
}
sum+=k;
//如果说前面有传染,那么蚂蚁后边的向右边走的也会被感染
if(k!=0){

for(int i=1;i<n;i++){
            if(a[i]>0&&a[i]<point) sum++;
         }
     }

    
 }
 else if(point<0){
    //感冒蚂蚁向左边走
    int k=0;
    //统计在蚂蚁左边且向右边走的蚂蚁
    for(int i=1;i<n;i++){
        if(a[i]>0&&a[i]<abs(point)){
            k++;
        }
    }
    sum+=k;
   if(k!=0){
      for(int i=1;i<n;i++){
        if(a[i]<0&&a[i]<point){
            sum++;
        }
      }
   }
 }


cout<<sum<<endl;

}
0 回复 0 转发 0 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!