sandeep03edu

Gas Station

Jun 29th, 2022
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. int Solution::canCompleteCircuit(const vector<int> &A, const vector<int> &B) {
  2.     vector<int> maxiDiffIndex;
  3.     int n = A.size();
  4.     int maxi = -1e9;
  5.    
  6.     for(int i=0; i<n; ++i){
  7.         maxi = max(maxi, A[i]-B[i]);
  8.     }
  9.    
  10.     for(int i=0; i<n; ++i){
  11.         if(A[i]-B[i]==maxi){
  12.             maxiDiffIndex.push_back(i);
  13.         }
  14.     }
  15.    
  16.     int ans = -1;
  17.     for(auto index: maxiDiffIndex){
  18.         int a = index;
  19.         int sum = 0;
  20.         bool flag = true;
  21.        
  22.         for(int j=0; j<n; ++j){
  23.             int i = a+j;
  24.             i%=n;
  25.             sum += A[i]-B[i];
  26.             if(sum<0){
  27.                 flag = false;
  28.                 break;
  29.             }
  30.         }
  31.         if(flag){
  32.             return a;
  33.         }
  34.     }
  35.    
  36.     return ans;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment