藍橋杯 歷屆試題 螞蟻感冒(C )

2021-10-06 10:55:18 字數 937 閱讀 8293

資源限制

時間限制:1.0s 記憶體限制:256.0mb

問題描述

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。

每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺/秒。

當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。

這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。

請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。

輸入格式  

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

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

輸出格式  

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

3

5 -2 8

1
5

-10 8 -20 12 25

3
螞蟻碰面後雙方反向爬行,相當於擦肩而過繼續前行,同時所有螞蟻以同一速度勻速爬行,即當兩隻螞蟻同向而行且之間有距離時,無論如何都不會碰面。

因此,被傳染上感冒的螞蟻,即會與第一只碰面的螞蟻總數為:

1、位於第一只螞蟻左側,且向右爬行的螞蟻;

2、位於第一只螞蟻右側,且向左爬行的螞蟻;

總共換上感冒的螞蟻數即為:被傳染上感冒的螞蟻+第一只螞蟻。

#include

using

namespace std;

intmain()

cout

}

藍橋杯 歷屆試題 螞蟻感冒(C )

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

藍橋杯 歷屆試題 螞蟻感冒

分析 1 因為只計算數量,所以螞蟻是掉頭還是直接向前走對本題沒有影響 2 如果感冒的螞蟻方向向左 在它左邊的螞蟻 如果向右,則會感染 如果向左則不會感染 在它右邊的螞蟻 如果向右,則不會感染 如果向左 1 如果感冒的那只螞蟻左邊有向右的螞蟻,他會掉頭,則右邊向左的螞蟻會感冒 2 如果感冒的那只螞蟻左...

藍橋杯歷屆試題 螞蟻感冒

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