Minimum Sum with K operations

image

My C# Code:

using System;
using System.Collections.Generic;

namespace Minimum_Sum
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] nums = new int[] {10,20,7};
            int k = 4;
            int result = Process(nums, k);
            Console.WriteLine("Result is: " + result.ToString());
        }

        private static int Process(int[] nums, int k)
        {
            if(nums.Length == 0)
            {
                return 0;
            }
            if(nums.Length == 1)
            {
                nums[0] = (int)Math.Ceiling((Decimal)nums[0] / 2);
            }
            Array.Reverse(nums);

            int i = 0;
            int firstMaxIndex = 0;
            int secondMaxIndex = 1;
            while (k > 0)
            {
                int tmp = (int)Math.Ceiling((Decimal)nums[i] / 2);
                nums[i] = tmp;
                if(nums.Length > 1 && nums[secondMaxIndex] > tmp)
                {
                    int maxNo = nums[firstMaxIndex];
                    int j = secondMaxIndex;
                    for(; j<nums.Length; j++)
                    {
                        if(nums[j] > maxNo)
                        {
                            nums[j - 1] = nums[j];
                        }
                        else
                        {
                            break;
                        }
                    }
                    nums[j - 1] = maxNo;
                }
                k--;
            }
            int result = 0;
            for (int j = 0; j < nums.Length; j++)
            {
                result += nums[j];
            }
            return result;
        }
    }
}
Comments (2)