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[10] ; 
    int B[10] ; 
    int C[10] ; 
  
    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

Leave a Reply

Your email address will not be published. Required fields are marked *

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.