#include <stdio.h>
#include <stdlib.h>
void merge(int arr[], int L, int M, int R){
int LEFT_SIZE = M - L;
int RIGHT_SIZE = R - M + 1;
int left[LEFT_SIZE];
int right[RIGHT_SIZE];
int i;
for(i = 0 ; i < M ; i++){
left[i-L] = arr[i];
}
for(i = M ; i <= R ; i++){
right[i-M] = arr[i];
}
i=0;
int j=0;
int k=L;
while(i<LEFT_SIZE && j<RIGHT_SIZE){
if(left[i] < right[j]){
arr[k] = left[i];
i++;
k++;
}
else{
arr[k] = right[j];
j++;
k++;
}
}
while(i<LEFT_SIZE){
arr[k] = left[i];
i++;
k++;
}
while(j<RIGHT_SIZE){
arr[k] = right[j];
j++;
k++;
}
}
int main()
{
int arr[] = {2,8,9,10,4,5,6,7};
int L=0;
int M=4;
int R=7;
int i;
merge(arr, L, M, R);
for(i=0;i<=R;i++){
printf("%d\n",arr[i]);
}
}