class Solution {
public:
int arr[100001];
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
vector<int> v;
for(int i=0;i<gas.size();i++) v.push_back(gas[i]-cost[i]);
long long mini = v[0];int m_idx = 0;int s = v.size();
for(int i=0;i<s;i++){
if(i==0){
arr[0]=v[0];continue;
}
arr[i]=arr[i-1]+v[i];
if(arr[i]<mini){
mini = arr[i];m_idx = i;
}
}
int ans = -1;
if(arr[s-1]>=0) ans = (m_idx+1)%s;

return ans;
}
};



gas[i]-cost[i] 의 누적합의 최소값의 idx 를 찾아서

idx+1 인 곳 이 정 답 이네요!


(cost[i]가 i-1th 에서 도달하기 위한 비용인줄알고 헤맸음)