生活随笔
收集整理的這篇文章主要介紹了
NYOJ 990 蚂蚁感冒
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
螞蟻感冒
時間限制:
1000?ms ?|? 內存限制:
65535?KB 難度:
2
描述
長100厘米的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。 每只螞蟻都只能沿著桿子向前爬,速度是1厘米/秒。 當兩只螞蟻碰面時,它們會同時掉頭往相反的方向爬行。 這些螞蟻中,有1只螞蟻感冒了。并且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。 請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。 輸入第一行輸入一個整數n (1 < n < 50), 表示螞蟻的總數。
接著的一行是n個用空格分開的整數 Xi (-100 < Xi < 100), Xi的絕對值,表示螞蟻離開桿子左邊端點的距離。正值表示頭朝右,負值表示頭朝左,數據中不會出現0值,也不會出現兩只螞蟻占用同一位置。其中,第一個數據代表的螞蟻感冒了。輸出要求輸出1個整數,表示最后感冒螞蟻的數目。樣例輸入 3
5 -2 8
5
-10 8 -20 12 25 樣例輸出 1
3 藍橋杯競賽的一道題,在考場上調試了好久也沒調試出來,,今天看了大神的代碼,感覺到自己還是太弱啊! 現在把大神代碼貼出來與大家共享,共同學習! #include<iostream>
#include<cstdio>
using namespace std;
int main()
{int N,count=0,i;int num[51];while(~scanf("%d",&N)){for(i = 0;i < N;i++)cin>>num[i];if(num[0]>0){for(int i = 1;i < N;i++)if(-num[i]>num[0])count++;if(count)for(i = 1;i < N;i++)if(num[i]<num[0]&&num[i]>0)count++;cout<<count+1<<endl;}else{for(i = 1;i < N;i++)if(num[i]<-num[0]&&num[i]>0)count++;if(count)for(i = 1;i < N;i++)if(-num[i]>-num[0])count++;cout<<count+1<<endl;}count = 0;}return 0;
}
總結
以上是生活随笔為你收集整理的NYOJ 990 蚂蚁感冒的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。