Description

Submission
class Solution {
public:
int furthestBuilding(vector<int>& heights, int bricks, int ladders) {
multiset<int> Set;
for(int i = 1; i < heights.size(); ++i) {
int d = heights[i] - heights[i-1];
if(d <= 0) continue;
if(ladders > 0) {
ladders -= 1;
Set.insert(d);
} else {
Set.insert(d);
int r = *Set.begin();
if(r <= bricks) {
bricks -= r;
Set.erase(Set.begin());
} else {
return i - 1;
}
}
}
return heights.size() - 1;
}
};
