Загрузка данных


using System;
using System.Text;

namespace Lab2_Variant20
{
    class Program
    {
        static void Main()
        {
            Console.OutputEncoding = Encoding.UTF8;

            // Ввод размера массива
            Console.Write("Введите размер массива n: ");
            int n;

            while (!int.TryParse(Console.ReadLine(), out n) || n <= 0)
            {
                Console.Write("Ошибка. Введите n больше 0: ");
            }

            // Ввод числа k
            Console.Write("Введите k: ");
            int k;

            while (!int.TryParse(Console.ReadLine(), out k) || k < 0)
            {
                Console.Write("Ошибка. Введите k не меньше 0: ");
            }

            // Создание и заполнение массива
            int[] a = new int[n];

            for (int i = 0; i < n; i++)
            {
                Console.Write("a[{0}] = ", i);

                while (!int.TryParse(Console.ReadLine(), out a[i]))
                {
                    Console.Write("Ошибка. Введите целое число: ");
                }
            }

            // Вывод исходного массива
            Console.WriteLine("Исходный массив:");

            for (int i = 0; i < n; i++)
            {
                Console.Write("{0,5:D}", a[i]);
            }

            Console.WriteLine();

            // Удаление серий длиной больше k
            int read = 0;
            int write = 0;

            while (read < n)
            {
                int end = read + 1;

                while (end < n && a[end] == a[read])
                {
                    end++;
                }

                int length = end - read;

                if (length <= k)
                {
                    for (int j = read; j < end; j++)
                    {
                        a[write] = a[j];
                        write++;
                    }
                }

                read = end;
            }

            // Вывод результата
            Console.WriteLine("Результат:");

            if (write == 0)
            {
                Console.WriteLine("Массив пуст.");
            }
            else
            {
                for (int i = 0; i < write; i++)
                {
                    Console.Write("{0,5:D}", a[i]);
                }

                Console.WriteLine();
            }

            Console.ReadKey();
        }
    }
}