int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
vector<int> gasLeft;
for(int i = 0; i < gas.size(); i++) {
gasLeft.push_back(gas[i] - cost[i]);
}
int startStation = 0, gasBalance = 0, gasCost = 0;
for(int i = 0; i < gasLeft.size(); i++) {
gasBalance += gasLeft[i];
if(gasBalance < 0) {
gasCost = gasBalance;
startStation = i+1;
gasBalance = 0;
}
}
if((gasBalance+gasCost) < 0) {
return -1;
}
else {
return startStation;
}
}