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

2021-09-11 01:42:48 字數 1165 閱讀 5322

第五屆藍橋杯c++b組 螞蟻感冒

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

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

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

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

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

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

接著的一行是n個用空格分開的整數 xi (-100 < xi < 100), xi的絕對值,表示螞蟻離開桿子左邊端點的距離。

正值表示頭朝右,負值表示頭朝左,資料中不會出現0值,也不會出現兩隻螞蟻占用同一位置。其中,第乙個資料代表的螞蟻感冒了。

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

輸入樣例 1

35 -2 8

輸出樣例 1

1輸入樣例 2

5-10 8 -20 12 25

輸出樣例 23提示

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

由題目可知 生病螞蟻朝右的時候 生病螞蟻右邊所有朝左的螞蟻 都會被傳染,同理生病螞蟻朝左的時候 生病螞蟻左邊的朝右的螞蟻都被傳染。其實問題中的碰頭反向我們可以理解為穿過。假設生病螞蟻朝右,當生病螞蟻右邊有朝左的螞蟻的時候 這時候 我們可以理解為它穿過。所以這只生病螞蟻左邊朝右的螞蟻就會被生病螞蟻傳染的螞蟻給傳染。但是這有前提條件。同理 生病螞蟻朝左。

#includeusing namespace std;

int main()

if(y>0&&y0&&y<-x)//在x右邊且朝右

if(y<0&&y}

}if(k)

printf("%d",l+r+1);

else

printf("1");

}

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

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

螞蟻感冒 第五屆藍橋杯

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

第五屆 8 螞蟻感冒

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