class Solution {
public:
vector<int> asteroidCollision(vector<int>& asteroids) {
vector<int> stk;
for (auto ast: asteroids)
{
while (!stk.empty() && stk.back() > 0 && ast < 0)
{
int diff = ast + stk.back();
if (diff > 0)
{
ast = 0;
}
else if (diff < 0)
{
stk.pop_back();
}
else
{
ast = 0;
stk.pop_back();
}
}
if (ast != 0)
stk.push_back(ast);
}
return stk;
}
};