вывод индексов граничных элементов и их значений
Решаю задачу на алгоритмы. Текст задачи приложил в виде скрина, так как все не скопировать(сайт использует картинки на месте формул)

Я написал сортировку слиянием:
public static int [] mergeSort(int lPoint, int rPoint, int[] arr)
{
int len = arr.Length;
if(len == 1)
{
return arr;
}
int[] l = arr.Take(arr.Length / 2).ToArray();
int[] r = arr.Skip(arr.Length/2).ToArray();
l = mergeSort(1, l.Length/2, l);
r = mergeSort(r.Length/2, r.Length, r);
return mergeTwoArr(lPoint,rPoint, l, r);
}
public static int[] mergeTwoArr(int l, int r,int [] arr1, int[] arr2)
{
int i = 0;
int j = 0;
int k = 0;
int[] result = new int[arr1.Length + arr2.Length];
while (i < arr1.Length && j < arr2.Length)
{
if (arr1[i] < arr2[j])
{
result[k] = arr1[i];
i++;
}
else
{
result[k] = arr2[j];
j++;
}
k++;
}
while(i < arr1.Length)
{
result[k] = arr1[i];
k++;
i++;
}
while (j < arr2.Length)
{
result[k] = arr2[j];
k++;
j++;
}
//Console.WriteLine($"{l} {r} {result[l - 1]} {result[r - 1]}");
return result;
}
}
Но я не могу понять, как правильно вывести индексы граничных элементов. Подскажите пожалуйста, как это можно сделать
