Advertisement
dstamatova

marge

Jan 2nd, 2022
1,175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int simDemision(int* arr1, int* arr2, int n1, int n2, int *simArray)
  4. {
  5.     int k = 0;
  6.     for (int i = 0; i < n1; i++)
  7.     {
  8.         bool repeat = false;
  9.         for (int j = 0; j < n2; j++)
  10.         {
  11.             if (arr1[i] == arr2[j])
  12.             {
  13.                 repeat = true;
  14.             }
  15.         }
  16.         if (!repeat)
  17.         {
  18.             simArray[k++] = arr1[i];
  19.         }
  20.     }
  21.     return k;
  22. }
  23. int merge(int arr1[], int m, int arr2[], int n, int* mergedArray)
  24. {
  25.     int temp,  index = 0;
  26.     int count = 0;
  27.     for (int i = 0; i < m; i++)
  28.     {
  29.         for (int j = 0; j < n - count; j++)
  30.         {
  31.             if (arr1[i]==arr2[j])
  32.             {
  33.                 temp = arr2[j];
  34.                 arr2[j] = arr2[n - 1 - count];
  35.                 arr2[n - 1 - count] = temp;
  36.                 count++;
  37.             }
  38.         }
  39.         mergedArray[index++] = arr1[i];
  40.     }
  41.     for (int i = 0; i < n - count; i++)
  42.     {
  43.         mergedArray[index++] = arr2[i];
  44.     }
  45.     return index;
  46. }
  47.  
  48. int main()
  49. {
  50.     int n1, n2, a[30], b[30];
  51.     bool repeat = false;
  52.     cin >> n1;
  53.     cin >> n2;
  54.     for (int i = 0; i < n1; i++)
  55.     {
  56.         cin >> a[i];
  57.     }
  58.     for (int i = 0; i < n2; i++)
  59.     {
  60.         cin >> b[i];
  61.     }
  62.     int* mergedArray = new int[n1 + n2];
  63.     int* simArray1 = new int[abs(n1 - n2)];
  64.  
  65.     int* simArray2 = new int[abs(n1 - n2)];
  66.     int mergeCount = merge(simDemision(a, b, n1, n2, simArray1), n1, simDemision(b, a, n2, n1,simArray2), n2, mergedArray);
  67.     for (int i = 0; i < mergeCount; i++)
  68.     {
  69.         cout << mergedArray[i] << " ";
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement