蚂蚁感冒


题目

长 100 厘米的细长直杆子上有 n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
输入格式
第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是 n个用空格分开的整数 Xi, Xi的绝对值表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现 0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。
输出格式
输出1个整数,表示最后感冒蚂蚁的数目。
数据范围
1<n<50,0<|Xi|<100
输入样例1:
3
5 -2 8
输出样例1:
1
输入样例2:
5
-10 8 -20 12 25
输出样例2:
3

代码

#include<iostream>
#include<algorithm>
using namespace std;
int aa[1235];
int main()
{
    int n,rl=0,lr=0;
    cin>>n;
    for(int i=0;i<n;i++) cin>>aa[i];
    for(int i=1;i<n;i++)
    {
        if(abs(aa[i])>abs(aa[0])&&aa[i]<0) rl++;
        else if(abs(aa[i])<abs(aa[0])&&aa[i]>0) lr++;
    }
    if(aa[0]>0&&rl==0||aa[0]<0&&lr==0) cout<<"1"<<endl;
    else cout<<rl+lr+1<<endl;
    return 0;
}

Author: 眼里有星星
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source 眼里有星星 !
 Previous
数星星 数星星
题目天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有 k颗星星,就说这颗星星是 k级的。例如,上图中星星 5是 3 级的(1,2,4 在它左下),星星 2,4 是 1级的。例图中有 1个
2020-02-23
Next 
小朋友排队 小朋友排队
题目n个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是 0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加 1,如果第
2020-02-23
  TOC