Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool cmp( const vector<int>& v1,
- const vector<int>& v2 ) {
- return v1[1] < v2[1];
- }
- void fun (vector < vector <int> > &a, vector < vector <int> > &b, vector < vector <int> > &res, int target)
- {
- int dif = INT_MIN;
- int l = 0;
- int r = b.size()-1;
- while (l < a.size() && r >=0)
- {
- int a_c = a[l][1];
- int b_c = b[r][1];
- int cur_dif = a_c + b_c - target ;
- if (cur_dif > dif && cur_dif <= 0)
- {
- res.clear();
- res.push_back({a[l][0],b[r][0]});
- dif = cur_dif;
- }
- else if (cur_dif == dif)
- {
- res.push_back( {a[l][0],b[r][0]});
- }
- if (cur_dif > 0 )
- r--;
- else l++;
- }
- }
- int main() {
- vector < vector <int> >a = {{1, 3}, {2, 5}, {3, 7}, {4,10}};
- vector <vector <int> > b = {{1, 2}, {2, 3}, {3, 4}, {4,5}};
- int target = 10;
- vector < vector <int> > res;
- sort(a.begin(), a.end(),cmp);
- sort(b.begin(), b.end(),cmp);
- fun (a,b,res,target);
- for (int i = 0 ; i < res.size(); i ++)
- {
- for (int j= 0 ; j < 2 ; j ++)
- cout <<res[i][j] <<" ";
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement