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();
}
}
}