sdnu 1206 螞蟻感冒

2021-07-03 07:36:36 字數 904 閱讀 3727

description:

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

input:

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

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

output:

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

sample input

35 -2 8

sample output

因為不需要記錄螞蟻的 id。

所以該題可以將螞蟻的調頭看成「對穿而過」。

#include#includeusing namespace std;

int ant[50 + 5];

bool cmp(int x, int y) //按距離排序

int main()

} int sum = 1;

if (ant[pos] < 0) //若螞蟻頭朝左

if (sum != 0) //必須判斷m左端是否有頭朝右的螞蟻,否則,下面不成立 即不會有向右走的感冒螞蟻

}} else //若螞蟻頭朝右,分析同上

if (sum != 0)

}} cout << sum << endl;

return 0;

}

HDU 螞蟻感冒

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

2014 螞蟻感冒

include include includeusing namespace std struct node node a 100 int comp node a1,node a2 int main sort a,a n,comp 按照螞蟻離開桿子左邊端點的距離從小到大排序 int tmp 0,le...

螞蟻感冒 C C

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