Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int Solution::canCompleteCircuit(const vector<int> &A, const vector<int> &B) {
- vector<int> maxiDiffIndex;
- int n = A.size();
- int maxi = -1e9;
- for(int i=0; i<n; ++i){
- maxi = max(maxi, A[i]-B[i]);
- }
- for(int i=0; i<n; ++i){
- if(A[i]-B[i]==maxi){
- maxiDiffIndex.push_back(i);
- }
- }
- int ans = -1;
- for(auto index: maxiDiffIndex){
- int a = index;
- int sum = 0;
- bool flag = true;
- for(int j=0; j<n; ++j){
- int i = a+j;
- i%=n;
- sum += A[i]-B[i];
- if(sum<0){
- flag = false;
- break;
- }
- }
- if(flag){
- return a;
- }
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment