Не получается решить олимпиадную задачу
Садовод Иван сажал семена каждые N дней, в i-ый день Иван посадил ai
семечку. Теперь Иван хочет собрать только самую взросшую пару. Взросшая пара семян (i, j) посаженные в i и j дни соответственно, называется самой взросшей, если |ai - aj|
максимально среди возможных пар.
Входные данные:
В первой строке: N - количество дней
Во второй строке: целые числа от a1, a2, a3..., где ai
- то, насколько взросло семя
Выходные данные:
Номера дней i и j, в которых семена являются самыми взросшими. Числа i и j лежат в диапазоне от 1 до N. Если таких пар несколько - вывести пару с максимальным значением |i - j|
. Обратите внимание, что пара i и j отличается от пары j и i.
Например:
Вход:
6
1 2 1 3 1 3
Выход:
6 1
Вход:
4
2 1 0 -1
Выход:
1 4
Я попытался решить эту задачу, но код работает только для второго входа, но не для первого. Вот код, в чем может быть проблема?
int n = int.Parse(Console.ReadLine());
int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
int maxDiff = int.MinValue;
int maxI = 0, maxJ = 0;
for (int i = 0; i < n; i++)
{
for (int j = 1; j < n; j++)
{
int diff = Math.Abs(arr[i] - arr[j]);
if (diff > maxDiff)
{
maxDiff = diff;
maxI = i;
maxJ = j;
}
else if (diff == maxDiff)
{
int dist1 = Math.Abs(maxI - maxJ);
int dist2 = Math.Abs(i - j);
if (dist2 > dist1)
{
maxI = i;
maxJ = j;
}
}
}
}
Console.WriteLine($"{maxI + 1} {maxJ + 1}");