試題 歷屆試題 螞蟻感冒

2021-10-09 16:44:18 字數 1536 閱讀 1085

提交此題

評測記錄

資源限制

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

問題描述

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

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

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

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

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

輸入格式

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

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

輸出格式

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

樣例輸入

35 -2 8

樣例輸出

樣例輸入

5-10 8 -20 12 25

樣例輸出

參考文章:

#include #include #include using namespace std;

int main()

res+=left;

if(left) res+=right;

}

cout<#include#include#include#include#include#include#includeusing namespace std;

const int inf=0x3fffffff;

const int maxn=10010;

int main()

cout#include#include#include#include#include#include#include#includeusing namespace std;

const int inf=0x3fffffff;

const int maxn=10010;

double a[50];// 代表每只螞蟻所在位置的絕對值

int f[50]= ; //f 表示方向 0 往右走 1 往左走

int b[50]; //表示是否 感冒 1 感冒 0 沒感冒

int main()

a[i]=k;

} b[0]=1; // 表示第一只螞蟻是感冒的

for(int i=0; i=0&&a[i]<=100) flag=0;

} if(flag) break;

// 感冒

for(int i=1; i100) continue;

for(int j=0; jif(f[i]) f[i]=0;

else f[i]=1;

if(f[j]) f[j]=0;

else f[j]=1;

break;}}

} }cout

}

歷屆試題 螞蟻感冒

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

歷屆試題 螞蟻感冒

歷屆試題 螞蟻感冒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,...

歷屆試題 螞蟻感冒

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