#include<stdio.h>
const a=5,b=5,c=5,d=5,e=10,f=10,g=20;
void input(int[],int);
void output(int[],int);
void fuzja(int[],int[],int[],int,int);
void sort_bbl(int[],int);
main()
{ int taba[a],tabb[b],tabc[c],tabd[d],tabe[e],tabf[f],tabg[g];

  input(taba,a);   
  input(tabb,b); 
  sort_bbl(taba,a);  
  sort_bbl(tabb,b); 
  fuzja(tabe,taba,tabb,a,b);  
  output(taba,a);
  output(tabb,b);
  output(tabe,e);

  input(tabc,c);   
  input(tabd,d);
  sort_bbl(tabc,c);  
  sort_bbl(tabd,d);
  fuzja(tabf,tabc,tabd,c,d);
  output(tabc,c);
  output(tabd,d);
  output(tabf,f);

  fuzja(tabg,tabe,tabf,e,f);
  output(tabg,g);
}

void input(int tab[],int s)
{ printf("\n\nProsze podac elementy tablicy:\n");
  for(int k=0;k<s;k++){printf("element %d:",k);scanf("%d",&tab[k]);}
} 
void output(int tab[],int s)
{ printf("\n\nElementy tablicy:\n");
  for(int k=0;k<s;k++)printf("%d,",tab[k]);
}
void fuzja(int t[], int t1[], int t2[], int rt1,int rt2)
{ int i=0,i1=0,i2=0;
  while(i1<rt1 &&i2<rt2)
  {if(t1[i1]<t2[i2]) t[i++]=t1[i1++];
   else  t[i++]=t2[i2++];
  }
  if(i1==rt1)
   for(int k=i2;k<rt2;k++) t[i++]=t2[k];
  else
   for(int k=i1;k<rt1;k++) t[i++]=t1[k];
}
void sort_bbl(int t[],int rt)
{ int i=-1,j,temp, zamiana=1;
  while(i<rt-1 && zamiana)
  {zamiana=0;
   for(j=rt-2;j>i;j--)
    {if(t[j]>t[j+1])
     {zamiana=1;
      temp=t[j];t[j]=t[j+1];t[j+1]=temp;
      }      
    }
   i++;
  }
}   
  
  
  
         
