51nod 1289 大魚吃小魚(棧模擬)

2022-09-13 20:57:17 字數 989 閱讀 4758

1289大魚吃小魚

基準時間限制:1秒 空間限制:131072kb 分值: 5難度:1級演算法題

收藏關注

取消關注

有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個數,表示最終剩下的魚的數量。

input示例

5

4 03 1

2 01 0

5 0

output示例

2

用棧來儲存b[i]=1的魚(向右移動的,要去戰鬥的),當遇到b[i]=0的魚(向左移動的,來挑戰的),雙方血拼,用ans記錄犧牲的魚。

最終剩下的魚=n-ans;

1 #include 2 #include 3

using

namespace

std;

4int a[100005];5

int b[100005

];6 stacksta;

7int

main()817

for(int i=0;i)

1826

while(!sta.empty())

2736 ans++;37}

38}39 cout

40return0;

41 }

view code

51NOD 1289 大魚吃小魚 (棧)

1289 大魚吃小魚 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之...

51Nod 1289 大魚吃小魚(棧)

小明現在非常痴迷於玩一款益智遊戲,該遊戲有一種特殊的模式。每局開始有n位角色,每位遊戲角色的位置及血量都不相同。每個角色可以沿著x軸固定方向移動,即向左或者向右移動,移動的速度都是一樣的。兩名角色相遇血量多的角色會擊敗血量少的角色,然後勝利的角色會恢復滿血。現在從左到右給出每個角色的血量和移動的方向...

51nod 1289 大魚吃小魚

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