大魚吃小魚(棧)

2021-08-18 23:52:18 字數 619 閱讀 3149

有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向(0表示向左,1表示向右)。問足夠長的時間之後,能剩下多少條魚?input第1行:1個數n,表示魚的數量(1 <= n <= 100000)。 

第2 - n + 1行:每行兩個數aii

, bi

i,中間用空格分隔,分別表示魚的大小及游動的方向(1 <= aii

<= 10^9,bii

= 0 或 1,0表示向左,1表示向右)。output輸出1個數,表示最終剩下的魚的數量。sample input

5

4 03 1

2 01 0

5 0

sample output
2

思路:把向右移動的魚入棧,拿向左移動的魚不斷與棧頂比較。注意棧裡只有向右移動的魚。

**:

#include #include #include using namespace std;

//1左 0右

int main()

else

else}}

}cout

}

大魚吃小魚(棧)

我在最近的一次選拔賽上做到了這道題,當時我想到了用棧去做,也有了些思路,但是 實現上卻出了一些問題。但現在感覺會了這道題。這裡是題目 有n條魚,在一條直線上移動。速度相同,兩條魚相遇大魚會吃掉小魚。給出每條魚的初始位置xi,大小ai,移動方向 時間足夠長,最後還剩多少魚。所有魚大小初始位置均不相同,...

大魚吃小魚

有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?input 第1行 1個數n,表示魚的數量 1 n 100000 第2 n 1行 每...

大魚吃小魚

有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?input 第1行 1個數n,表示魚的數量 1 n 100000 第2 n 1行 每...