大魚吃小魚(棧)

2021-09-11 22:25:15 字數 988 閱讀 6522

我在最近的一次選拔賽上做到了這道題,當時我想到了用棧去做,也有了些思路,但是**實現上卻出了一些問題。。。。

但現在感覺會了這道題。

這裡是題目:

有n條魚,在一條直線上移動。速度相同,兩條魚相遇大魚會吃掉小魚。

給出每條魚的初始位置xi,大小ai,移動方向

時間足夠長,最後還剩多少魚。

所有魚大小初始位置均不相同,位置5相對與位置2,5在2的右邊。

多組輸入,輸入到檔案結束,資料不超過100組。

每組資料第一行乙個整數n(1 <= n <= 1000),表示魚的數量

第二行n個整數用空格分隔,表示x_i(-10^9 <= x_i <= 10^9)

第三行n個整數用空格分隔,表示a_i(-10^9 <= a_i <= 10^9)

第四行n個整數用空格分隔,表示第i條魚的方向,0表示向左,1表示向右

每組資料輸出乙個整數佔一行表示答案。
2

2 110 9

1 02

1 25 2

1 0

2

1

ac**:

#include #include #include #include #include #include using namespace std;

struct node

q[1005];

bool cmp(node x, node y)

int main()

if(tmp.empty()) ++ans;

}else tmp.push(q[i].a);

}while(!tmp.empty()) tmp.pop(), ++ans;

printf("%d\n",ans);

}return 0;

}

大魚吃小魚(棧)

有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行 每...

大魚吃小魚

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