南陽 990 螞蟻感冒 第五屆藍橋杯 解題報告

2021-07-10 13:40:03 字數 1022 閱讀 9396

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。 每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺/秒。 當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。 這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。 請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。

輸入

第一行輸入乙個整數n (1 < n < 50), 表示螞蟻的總數。

接著的一行是n個用空格分開的整數 xi (-100 < xi < 100), xi的絕對值,表示螞蟻離開桿子左邊端點的距離。正值表示頭朝右,負值表示頭朝左,資料中不會出現0值,也不會出現兩隻螞蟻占用同一位置。其中,第乙個資料代表的螞蟻感冒了。

輸出要求輸出1個整數,表示最後感冒螞蟻的數目。

樣例輸入

3

5 -2 8

5-10 8 -20 12 25

樣例輸出

1

3

分析:首先,螞蟻碰頭轉方向可以相當於兩個都沒轉。

然後,就只要求出以第乙個點為中心

1.如果向右,則sum=它右邊的且方向向左的+它左邊方向向右的(前提有符合右邊向左的,觸發反向)+1(本身)

2.如果向左,則sum=它左邊的且方向向右的+它右邊方向向左的(前提有符合右邊向左的,觸發反向)+1(本身)

**:

#include #include #include #include #include using namespace std;

struct zc

z[1000];

int main()

if(z[0].fx==1)

}for(int i=1; iz[0].x&&z[i].fx==0)

sum++;

}printf("%d\n",sum);}}

return 0;

}

螞蟻感冒 第五屆藍橋杯

螞蟻感冒 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只...

第五屆藍橋杯C B組 螞蟻感冒

第五屆藍橋杯c b組 螞蟻感冒 描述長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有...

第五屆藍橋杯C B組 螞蟻感冒

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了...