# Question Name:Searching 1

```#include<iostream>
using namespace std;

void findClosest(int A[], int B[], int C[], int p, int q, int r)
{

int diff = 1000;  // Initialize min diff

// Initialize result
int res_i =0, res_j = 0, res_k = 0;

// Traverse arrays
int i=0,j=0,k=0;
while (i < p && j < q && k < r)
{
// Find minimum and maximum of current three elements
int minimum = min(A[i], min(B[j], C[k]));
int maximum = max(A[i], max(B[j], C[k]));

// Update result if current diff is less than the min
// diff so far
if (maximum-minimum < diff)
{
res_i = i, res_j = j, res_k = k;
diff = maximum - minimum;
}

// We can't get less than 0 as values are absolute
if (diff == 0) break;

// Increment index of array with smallest value
if (A[i] == minimum) i++;
else if (B[j] == minimum) j++;
else k++;
}

// Print result
cout << A[res_i] << " " << B[res_j] << " " << C[res_k];
}

// Driver program
int main()
{
int A ;
int B ;
int C ;

int p;
int q;
int r,i;
scanf("%d",&p);
for(i=0;i<p;i++) { scanf("%d",&A[i]) ; }
scanf("%d",&q);

for(i=0;i<q;i++) { scanf("%d",&B[i]) ; }
scanf("%d",&r);

for(i=0;i<r;i++) { scanf("%d",&C[i]) ; }

findClosest(A, B, C, p, q, r);
return 0;
} ```

### Problem Description

Find three closest elements from given three sorted arrays. Take the three sorted arrays and their sizes as input.

• ###### Test Case 1

Input (stdin)

```3
1 4 10
3
2 15 20
2
10 12
```

Expected Output

`10 15 10`
• ###### Test Case 2

Input (stdin)

```3
20 24 100
5
2 19 22 79 800
5
10 12 23 24 119
```

Expected Output

`24 22 23`  