Advertisement
Guest User

Optimal Utilization

a guest
Oct 22nd, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1.  
  2. bool cmp( const vector<int>& v1,
  3.                const vector<int>& v2 ) {
  4.  return v1[1] < v2[1];
  5. }
  6. void fun (vector < vector <int> > &a, vector < vector <int> > &b, vector < vector <int> > &res, int target)
  7. {
  8.        
  9.     int dif = INT_MIN;
  10.      
  11.     int l = 0;
  12.     int r = b.size()-1;
  13.    
  14.     while (l < a.size() && r >=0)
  15.     {
  16.         int a_c = a[l][1];
  17.         int b_c =  b[r][1];
  18.         int cur_dif = a_c + b_c - target ;
  19.         if (cur_dif > dif && cur_dif <= 0)
  20.         {
  21.             res.clear();
  22.            
  23.             res.push_back({a[l][0],b[r][0]});
  24.             dif = cur_dif;
  25.            
  26.         }
  27.         else if (cur_dif == dif)
  28.         {
  29.            
  30.             res.push_back( {a[l][0],b[r][0]});
  31.         }
  32.        
  33.         if (cur_dif > 0 )
  34.             r--;
  35.         else l++;
  36.            
  37.     }
  38. }
  39.  
  40. int main() {
  41.    vector < vector <int> >a = {{1, 3}, {2, 5}, {3, 7}, {4,10}};
  42.     vector <vector <int> >  b = {{1, 2}, {2, 3}, {3, 4}, {4,5}};
  43.     int target = 10;
  44.     vector < vector <int> > res;
  45.    
  46.     sort(a.begin(), a.end(),cmp);
  47.     sort(b.begin(), b.end(),cmp);
  48.    
  49.     fun (a,b,res,target);
  50.    
  51.     for (int i = 0 ; i < res.size(); i ++)
  52.     {  
  53.         for (int j= 0 ; j < 2 ;  j ++)
  54.             cout <<res[i][j] <<" ";
  55.         cout << endl;
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement