#include <bits/stdc++.h>
using namespace std;
int carFleet(int target, vector<int> position, vector<int> speed) {
vector<pair<int,int>>nums;
for(int i=0;i<position.size();i++) {
nums.push_back({position[i],speed[i]});
}
sort(nums.begin(), nums.end());
stack<pair<int,int>>st;
for(int i=0; i<nums.size();i++) {
while(!st.empty() && st.top().second>nums[i].second) {
// if(st.top().first + st.top().second <= target) st.pop();
int pos1 = st.top().first;
int speed1 = st.top().second;
int pos2 = nums[i].first;
int speed2 = nums[i].second;
double value = std::abs(speed1 * pos2 - speed2 * pos1) / std::abs(speed1 - speed2);
int roundedUp = static_cast<int>(ceil(value));
cout << fixed << setprecision(5) << value << endl;
if(roundedUp<=target) st.pop();
else break;
}
st.push(nums[i]);
}
return st.size();
}
int main() {
// your code goes here
cout<<carFleet(13, {10,2,5,7,4,6,11}, {7,5,10,5,9,4,1});
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY2FyRmxlZXQoaW50IHRhcmdldCwgdmVjdG9yPGludD4gcG9zaXRpb24sIHZlY3RvcjxpbnQ+IHNwZWVkKSB7CiAgICAgICAgdmVjdG9yPHBhaXI8aW50LGludD4+bnVtczsKICAgICAgICBmb3IoaW50IGk9MDtpPHBvc2l0aW9uLnNpemUoKTtpKyspIHsKICAgICAgICAgICAgbnVtcy5wdXNoX2JhY2soe3Bvc2l0aW9uW2ldLHNwZWVkW2ldfSk7CiAgICAgICAgfQogICAgICAgIHNvcnQobnVtcy5iZWdpbigpLCBudW1zLmVuZCgpKTsKCgogICAgICAgIHN0YWNrPHBhaXI8aW50LGludD4+c3Q7CgogICAgICAgIGZvcihpbnQgaT0wOyBpPG51bXMuc2l6ZSgpO2krKykgewogICAgICAgICAgICB3aGlsZSghc3QuZW1wdHkoKSAmJiBzdC50b3AoKS5zZWNvbmQ+bnVtc1tpXS5zZWNvbmQpIHsKICAgICAgICAgICAgICAgIC8vIGlmKHN0LnRvcCgpLmZpcnN0ICsgc3QudG9wKCkuc2Vjb25kIDw9IHRhcmdldCkgc3QucG9wKCk7CiAgICAgICAgICAgICAgICBpbnQgcG9zMSA9IHN0LnRvcCgpLmZpcnN0OwogICAgICAgICAgICAgICAgaW50IHNwZWVkMSA9IHN0LnRvcCgpLnNlY29uZDsKICAgICAgICAgICAgICAgIGludCBwb3MyID0gbnVtc1tpXS5maXJzdDsKICAgICAgICAgICAgICAgIGludCBzcGVlZDIgPSBudW1zW2ldLnNlY29uZDsKCiAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSBzdGQ6OmFicyhzcGVlZDEgKiBwb3MyIC0gc3BlZWQyICogcG9zMSkgLyBzdGQ6OmFicyhzcGVlZDEgLSBzcGVlZDIpOwogICAgICAgICAgICAgICAgaW50IHJvdW5kZWRVcCA9IHN0YXRpY19jYXN0PGludD4oY2VpbCh2YWx1ZSkpOwogICAgICAgICAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNSkgPDwgdmFsdWUgPDwgZW5kbDsKCiAgICAgICAgICAgICAgICBpZihyb3VuZGVkVXA8PXRhcmdldCkgc3QucG9wKCk7CiAgICAgICAgICAgICAgICBlbHNlIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0LnB1c2gobnVtc1tpXSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzdC5zaXplKCk7CiAgICB9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWNvdXQ8PGNhckZsZWV0KDEzLCB7MTAsMiw1LDcsNCw2LDExfSwgezcsNSwxMCw1LDksNCwxfSk7CglyZXR1cm4gMDsKfQ==