Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main()
- {
- int f, t;
- scanf("%d", &t);
- for(f=1; f<=t; f++){
- int arr1[100], arr2[100], m, n, k = 0;
- int arr3[100];
- char x;
- scanf("%d %d %c", &m, &n, &x);
- for(int i=0; i<m; i++){
- scanf("%d", &arr1[i]);
- }
- for(int i=0; i<n; i++){
- scanf("%d", &arr2[i]);
- }
- //union of arr1[] and arr2[]
- if(x == 'U'){
- int i = 0, j = 0;
- while (i < m && j < n)
- {
- if (arr1[i] < arr2[j]){
- arr3[k] = arr1[i++];
- k++;
- }
- else if (arr2[j] < arr1[i]){
- arr3[k] = arr2[j++];
- k++;
- }
- else
- {
- arr3[k] = arr2[j++];
- i++;
- k++;
- }
- }
- // Print remaining elements of the larger array
- while(i < m){
- arr3[k] = arr1[i++];
- k++;
- }
- while(j < n){
- arr3[k] = arr2[j++];
- k++;
- }
- printf("\nCase #%d: ", f);
- for (int i = 0; i < k; i++) {
- printf("%d ", arr3[i]);
- }
- }
- //Intersection of arr1[] and arr2[]
- else{
- int i = 0, j = 0;
- while (i < m && j < n)
- {
- if (arr1[i] < arr2[j]){
- i++;
- }
- else if (arr2[j] < arr1[i]){
- j++;
- }
- else /* if arr1[i] == arr2[j] */
- {
- arr3[k] = arr2[j++];
- i++;
- k++;
- }
- }
- printf("\nCase #%d: ", f);
- for (int i = 0; i < k; i++) {
- printf("%d ", arr3[i]);
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment