using System;
public class ShortestRunProgram
{
public static int[] shortest_identical_consecutive_subarray(int[] arr)
{
if (arr.Length == 0)
return Array.Empty<int>();
int bestStart = 0;
int bestLen = arr.Length;
int currentStart = 0;
int currentLen = 1;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] == arr[i - 1])
{
currentLen++;
}
else
{
if (currentLen < bestLen)
{
bestLen = currentLen;
bestStart = currentStart;
}
currentStart = i;
currentLen = 1;
}
}
if (currentLen < bestLen)
{
bestLen = currentLen;
bestStart = currentStart;
}
int[] result = new int[bestLen];
Array.Copy(arr, bestStart, result, 0, bestLen);
return result;
}
// ------------------------------------------------------------
// MAIN PROGRAM
// ------------------------------------------------------------
public static void Main()
{
int[] arr =
{
3,3,3,
7,7,7,7,7,
2,2,
5,5,5,5,
9,9,9,9,9,9
};
int[] resultArr = shortest_identical_consecutive_subarray(arr);
Console.Write("Array result: ");
foreach (int x in resultArr)
Console.Write(x + " ");
}
}
/*
run:
Array result: 2 2
*/