fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector<int> printClosest(int arr[], int brr[], int n, int m, int x) {
  5. //code here
  6. int l = 0, r = m-1;
  7. int sum = 1e9;
  8. int first=0;
  9. int second=0;
  10. while(l<n && r>=0){
  11. if(arr[l]+brr[r]==x){
  12. return {arr[l],brr[r]};
  13. }else if(arr[l]+brr[r]<x){
  14. if(abs((arr[l]+brr[r])-x)<sum){
  15. sum=abs((arr[l]+brr[r])-x);
  16. first=arr[l];
  17. second=brr[r];
  18. }
  19. l++;
  20. }else{
  21. if(abs((arr[l]+brr[r])-x)<sum){
  22. sum=abs((arr[l]+brr[r])-x);
  23. first=arr[l];
  24. second=brr[r];
  25. }
  26. r--;
  27. }
  28. }
  29. return {first, second};
  30. }
  31.  
  32. int main() {
  33. // your code goes here
  34. int N = 4, M = 4;
  35. int arr[ ] = {1, 4, 5, 7};
  36. int brr[ ] = {10, 20, 30, 40};
  37. int X = 32;
  38. vector<int>res = printClosest(arr, brr, N, M, X);
  39. cout<<res[0]<<" "<<res[1]<<endl;
  40. return 0;
  41. }
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
1 30