public static void Main()
Console.WriteLine("Hello World");
var arr = new int[]{-99, -4, -2, -1, 2, 4, 6, 10,11, 18};
var ans = new int[arr.Length];
for(int i=0; i<arr.Length; i++)
ans[i] = Apply(arr[i], a, b, c);
Console.WriteLine("Unsorted transformed array");
for(int i = 0; i<ans.Length;i++)
Console.Write($"{ans[i]}, ");
var right = arr.Length -1;
var res = new int[arr.Length];
Console.WriteLine($"\nLet's start: left={left}, right={right}");
var temp = Apply(arr[left], a, b, c);
Console.WriteLine($"Finally let's put {temp} at {index}");
var lVal = Apply(arr[left], a, b, c);
var rVal = Apply(arr[right], a, b, c);
Console.WriteLine($"rVal={rVal} is GREATER than lVal={lVal}. Put {rVal} at {index}");
Console.WriteLine($"Now right={right} and left={left}");
Console.WriteLine($"rVal={rVal} is LESS than lVal={lVal}. Put {lVal} at {index}");
Console.WriteLine($"Now right={right} and left={left}");
Console.WriteLine("\n\nSorted transformed array");
for (int i = 0; i < res.Length; i++)
Console.Write($"{res[i]}, ");
private static int Apply(int x, int a, int b, int c)
return (a*x*x) + (b*x) + c;