using System.Diagnostics;
public static class Program
public static void Main()
int[] array = Enumerable.Range(1, 12).ToArray();
Console.WriteLine($"Array: {String.Join(", ", array)}");
Console.WriteLine($"Rotate({k})");
Console.WriteLine($"Array: {String.Join(", ", array)}");
Console.WriteLine($"Rotate({k})");
Console.WriteLine($"Array: {String.Join(", ", array)}");
public static void Rotate<T>(T[] array, int k)
ArgumentNullException.ThrowIfNull(array);
if (k < 0) k += array.Length;
Debug.Assert(k < array.Length);
Array.Reverse(array, 0, array.Length - k);
Array.Reverse(array, array.Length - k, k);