問題描述
長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
C++:
#include<bits/stdc++.h>
using namespace std;
int a[60];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int left=0,right=0;//分別表示感染螞蟻左邊向右走的數量,感染螞蟻右邊向左走的數量
for(int i=1;i<n;i++){
if(abs(a[i])<abs(a[0])&&a[i]>0) left++;//
else if(abs(a[i])>abs(a[0])&&a[i]<0) right++;
}
if(a[0]>0&&right==0||a[0]<0&&left==0) cout<<1<<endl;
else cout<<left+right+1<<endl;//初始1只
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57189.html
標籤:其他
上一篇:c++ STL總結
下一篇:動態規劃專題總結
