[蓝桥杯]蚂蚁感冒
題目描述
長100厘米的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。
每只螞蟻都只能沿著桿子向前爬,速度是1厘米/秒。
當兩只螞蟻碰面時,它們會同時掉頭往相反的方向爬行。
這些螞蟻中,有1只螞蟻感冒了。并且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。
請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。
輸入
第一行輸入一個整數n (1 < n < 50), 表示螞蟻的總數。
接著的一行是n個用空格分開的整數 Xi (-100 < Xi < 100), Xi的絕對值,表示螞蟻離開桿子左邊端點的距離。
正值表示頭朝右,負值表示頭朝左,數據中不會出現0值,也不會出現兩只螞蟻占用同一位置。
其中,第一個數據代表的螞蟻感冒了。
輸出
要求輸出1個整數,表示最后感冒螞蟻的數目。
樣例輸入
3
5 -2 8
樣例輸出
1
代碼如下:
#include <iostream> using namespace std; const int N = 110; int n,x,rights,lefts,start; int main() {cin>>n;scanf("%d",&start);for (int i = 1;i<n;i++){cin>>x;if (abs(x) < abs(start) && x > 0){rights++;}if (abs(x) > abs(start) && x < 0){lefts++;}}if (start > 0 && lefts==0 || start < 0 && rights==0){cout<<"1"<<endl;}else{cout<<1+rights+lefts<<endl;}return 0; }總結
- 上一篇: 夜跑最佳时间( 夜跑最佳时间是几点?)
- 下一篇: [蓝桥杯]最大子阵