有n條魚,在一條直線上移動。速度相同,兩條魚相遇大魚會吃掉小魚。
給出每條魚的初始位置,大小,移動方向
時間足夠長,最後還剩多少魚。
所有魚大小初始位置均不相同,位置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
思路:簡單資料結構棧的處理(由於比賽時候把樣例看錯了導致沒寫出來)把魚按位置從小到大排序,遇到朝右游入棧,朝左遊就迴圈和棧頂比較,如果棧頂空了答案+1,最後答案再加上棧內剩餘資料數量。
#include #include #include#include#include#include#include#include#include #include#include#include#include#include#includeusing namespace std;
const double pi = acos(-1);
#define n 1005
struct node
ans[n];
bool cmp(node x,node y)
if(sum.empty())
++num;
}else
sum.push(ans[i].b);
}while(!sum.empty())
sum.pop(),++num;
cout<}
return 0;
}
1289 大魚吃小魚
1289 大魚吃小魚 codility 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右...
1289 大魚吃小魚
基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?i...
1289 大魚吃小魚
基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 有n條魚每條魚的位置及大小均不同,他們沿著x軸游動,有的向左,有的向右。游動的速度是一樣的,兩條魚相遇大魚會吃掉小魚。從左到右給出每條魚的大小和游動的方向 0表示向左,1表示向右 問足夠長的時間之後,能剩下多少條魚?i...