Доброго времени суток. Дана такая задача :
Имеется два массива целых чисел: первый заполнен по возрастанию, второй - по убыванию. Объединить в порядке возрастания так, чтобы итоговый массив занял место первого массива. Дополнительных массивов не использовать.
Если бы мы сливали всё в третий массив, это было бы просто. Но в данном случае что-то у меня не получается докрутить .Вот что пока получилось.
void insert(int * arr, int N, int position, int x){
	for (int i = N-1; i >= position; i--)
	{
		*(arr+i+1)=*(arr+i);
	}
	*(arr+position-1)=x;
}
void task3(){
	int N1=5,N2=5;
	int a1[10]={1,4,9,12,54};
	int a2[]={99,17,9,8,4};
	for (int i = 0, j=N2-1; i < N1 || j>=0 ; ){
		if(a2[j]<=a1[i]){
			insert(a1,9,i,a2[j]);
			j--;
		}else i++;
	}
	for (int i = 0; i < N1+N2; i++)
	{
		printf("%d ",*(a1+i));	
	}
	printf("\n");
}
Подскажите, пожалуйста, как решить. 
Заранее большое спасибо за ответы!