/*
W 距离
S 初始携带的水量
arr 加油站数组
tem 每个加油站可提供的水的数量
*/
function getCount(W, S, arr, tem) {
const ret = [];
if(S < arr[0]) {
return -1
}
let count = 0;
for(let i = 0; i < arr.length; i++) {
if(W > S) {
if(S >= arr[i]) {
ret.push(tem[i]);
ret.sort((a, b) => a - b);
}else {
// 不足以到达下一个节点
while(ret.length && S < arr[i]) {
S += ret.pop();
count ++;
}
ret.push(tem[i]);
ret.sort((a, b) => a - b);
if(S < arr[i]) {
return -1;
}
}
}else {
return count;
}
}
while(S < W && ret.length) {
S += ret.pop();
count ++;
}
if(S >= W) {
return count;
}else {
return -1;
}
}