我在最近的一次選拔賽上做到了這道題,當時我想到了用棧去做,也有了些思路,但是**實現上卻出了一些問題。。。。
但現在感覺會了這道題。
這裡是題目:
有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行 每...