51nod 1289 大魚吃小魚(stack)

2021-07-30 17:05:43 字數 740 閱讀 3950

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

input

第1行:1個數n,表示魚的數量(1 <= n <= 100000)。 第2 - n + 1行:每行兩個數a[i], b[i],中間用空格分隔,分別表示魚的大小及游動的方向(1 <= a[i] <= 10^9,b[i] = 0 或 1,0表示向左,1表示向右)。

output

輸出1個數,表示最終剩下的魚的數量。

sample input

5

4 03 1

2 01 0

5 0

sample output

2

分析:把往右的入棧,那麼碰到右的就入棧

,如果是左的,就與棧裡面的作比較,如果比棧裡面的小,魚總數就減一,

如果比棧裡面的大,就把和往左比較的那條魚出棧。然後魚數減一;

#include#includeusing namespace std;

struct f

a[100010];

int main()

else//直到棧中的大於向左的,就把向左的的吃掉}}

}printf("%d\n",t);

return 0;

}

51nod 1289 大魚吃小魚

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

51NOD 1289 大魚吃小魚

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

51nod 1289 大魚吃小魚

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