Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int simDemision(int* arr1, int* arr2, int n1, int n2, int *simArray)
- {
- int k = 0;
- for (int i = 0; i < n1; i++)
- {
- bool repeat = false;
- for (int j = 0; j < n2; j++)
- {
- if (arr1[i] == arr2[j])
- {
- repeat = true;
- }
- }
- if (!repeat)
- {
- simArray[k++] = arr1[i];
- }
- }
- return k;
- }
- int merge(int arr1[], int m, int arr2[], int n, int* mergedArray)
- {
- int temp, index = 0;
- int count = 0;
- for (int i = 0; i < m; i++)
- {
- for (int j = 0; j < n - count; j++)
- {
- if (arr1[i]==arr2[j])
- {
- temp = arr2[j];
- arr2[j] = arr2[n - 1 - count];
- arr2[n - 1 - count] = temp;
- count++;
- }
- }
- mergedArray[index++] = arr1[i];
- }
- for (int i = 0; i < n - count; i++)
- {
- mergedArray[index++] = arr2[i];
- }
- return index;
- }
- int main()
- {
- int n1, n2, a[30], b[30];
- bool repeat = false;
- cin >> n1;
- cin >> n2;
- for (int i = 0; i < n1; i++)
- {
- cin >> a[i];
- }
- for (int i = 0; i < n2; i++)
- {
- cin >> b[i];
- }
- int* mergedArray = new int[n1 + n2];
- int* simArray1 = new int[abs(n1 - n2)];
- int* simArray2 = new int[abs(n1 - n2)];
- int mergeCount = merge(simDemision(a, b, n1, n2, simArray1), n1, simDemision(b, a, n2, n1,simArray2), n2, mergedArray);
- for (int i = 0; i < mergeCount; i++)
- {
- cout << mergedArray[i] << " ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement