public static int GetInstances(int instances, int[] utilization)
int eotfInstances = instances;
while (i < utilization.Length)
eotfInstances = (int)Math.Ceiling((decimal)eotfInstances / 2);
else if (utilization[i] > 60)
eotfInstances = eotfInstances * 2;
public static void Main()
int[] utilization = new int[] {25, 23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 76, 80};
Console.WriteLine($"input> instances: {instances}, utilization: {string.Join(',', utilization)}");
Console.WriteLine($"outpu> instances at end of time frame: {GetInstances(instances, utilization)}");
utilization = new int[] {30, 5, 4, 8, 19, 89};
Console.WriteLine($"input> instances: {instances}, utilization: {string.Join(',', utilization)}");
Console.WriteLine($"outpu> instances at end of time frame: {GetInstances(instances, utilization)}");