Problem:Merge two Sorted (non-increasing) Array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
#include <stdio.h> void _sort(int ar[],int len1,int br[],int len2) { int i=1,j=1; while(i<=len1 && j<=len2) { if(ar[i]>br[j]) { printf("%d ",ar[i]); i+=1; } else if(ar[i]<br[j]) { printf("%d ",br[j]); j+=1; } else if(ar[i]==br[j]) { printf("%d %d ",ar[i],br[j]); j+=1; i+=1; } } while(i<=len1) printf("%d ",ar[i++]); while(j<=len2) printf("%d ",br[j++]); printf("\n"); } int main() { //code int t,n,X,Y,j,i,len; int arr[50005]; int brr[50005]; scanf("%d",&t); while(t--) { scanf("%d%d",&X,&Y); for( i=1;i<=X;i++) { scanf("%d",&arr[i]); } for( i=1;i<=Y;i++) { scanf("%d",&brr[i]); } if(X<Y) { _sort(arr,X,brr,Y); } else _sort(brr,Y,arr,X); } return 0; } |