#include<bits/stdc++.h>
using namespace std;
void Merge(int a[],int l,int mid,int r)
{
int b[r+1],i,j,k;
for(i=l;i<=r;++i)
{
b[i]=a[i];
}
for(k=l,i=l,j=mid+1;i<=mid&&j<=r;)
{
if(b[i]<b[j])
{
a[k++]=b[i++];
}
else
{
a[k++]=b[j++];
}
}
while(i<=mid)a[k++]=b[i++];
while(j<=r)a[k++]=b[j++];
}
void MergeSort(int a[],int l,int r)
{
if(l>=r)return;
int mid=(l+r)/2;
MergeSort(a,l,mid);
MergeSort(a,mid+1,r);
Merge(a,l,mid,r);
}
int main()
{
int a[]={5,3,4,1,2};
MergeSort(a,0,4);
for(int i=0;i<5;++i)
{
cout<<a[i]<<" ";
}
}