ahamed210

union-inter

May 3rd, 2020
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int f, t;
  5.     scanf("%d", &t);
  6.     for(f=1; f<=t; f++){
  7.         int arr1[100], arr2[100], m, n, k = 0;
  8.         int arr3[100];
  9.         char x;
  10.         scanf("%d %d %c", &m, &n, &x);
  11.         for(int i=0; i<m; i++){
  12.             scanf("%d", &arr1[i]);
  13.         }
  14.         for(int i=0; i<n; i++){
  15.             scanf("%d", &arr2[i]);
  16.         }
  17.  
  18. //union of arr1[] and arr2[]
  19. if(x == 'U'){
  20.   int i = 0, j = 0;
  21.   while (i < m && j < n)
  22.   {
  23.     if (arr1[i] < arr2[j]){
  24.       arr3[k] = arr1[i++];
  25.       k++;
  26.     }
  27.     else if (arr2[j] < arr1[i]){
  28.       arr3[k] = arr2[j++];
  29.       k++;
  30.     }
  31.     else
  32.     {
  33.       arr3[k] = arr2[j++];
  34.       i++;
  35.       k++;
  36.     }
  37.   }
  38.  
  39. // Print remaining elements of the larger array
  40.   while(i < m){
  41.     arr3[k] = arr1[i++];
  42.     k++;
  43.   }
  44.   while(j < n){
  45.     arr3[k] = arr2[j++];
  46.     k++;
  47.   }
  48.   printf("\nCase #%d: ", f);
  49.     for (int i = 0; i < k; i++) {
  50.         printf("%d ", arr3[i]);
  51.     }
  52.   }
  53.  
  54.  
  55. //Intersection of arr1[] and arr2[]
  56. else{
  57.   int i = 0, j = 0;
  58.   while (i < m && j < n)
  59.   {
  60.     if (arr1[i] < arr2[j]){
  61.       i++;
  62.     }
  63.     else if (arr2[j] < arr1[i]){
  64.       j++;
  65.     }
  66.     else /* if arr1[i] == arr2[j] */
  67.     {
  68.     arr3[k] = arr2[j++];
  69.       i++;
  70.       k++;
  71.     }
  72.   }
  73. printf("\nCase #%d: ", f);
  74.     for (int i = 0; i < k; i++) {
  75.         printf("%d ", arr3[i]);
  76.     }
  77.   }
  78. }
  79.  
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment