int getMin(int[] packs, int y) => packs.OrderBy(a=>a).Zip(packs.OrderBy(a => a).Skip(y-1), (a, b) => b - a).Min();
var example1 = getMin(new [] {7, 3, 2, 4, 9, 12, 56}, 3);
var example2 = getMin(new [] { 3, 4, 1, 9, 56, 7, 9, 12 }, 5);
var example3 = getMin(new [] { 12, 4, 7, 9, 2, 23, 25, 41, 30, 40, 28, 42, 30, 44, 48, 43, 50 }, 7);
Console.WriteLine(example1);
Console.WriteLine(example2);
Console.WriteLine(example3);