Используя генератор случайных чисел, сформировать одномерные
массивы, состоящие из 100, 1000 и 10000 элементов. Причем числа должны
лежать в диапазоне от -99 до 99. Произвести поиск элементов в массивах в
соответствии со следующими вариантами заданий.
N, X, Y – вводятся с клавиатуры.
При выполнении заданий следует помнить о том, что алгоритмы бинар-
ного и индексно-последовательного поиска предполагают, что исходный
массив упорядочен. Сортировку при этом использовать не нужно, достаточно
изначально сгенерировать упорядоченный массив.
Аргумент - Число, сумма цифр (по модулю)
которого равно N, метод - Линейный поиск с барьером.

Выполни задачу маскимально придерживаясь структуры кода как в примере. Сначала генерируй массивы, выводи их. Потом спрашивай N. Пример:
```
class SearchDemo
{
    int N;
    int[] mas;
    int[] kind;
    int[] pind;
    //линейный поиск
    int LinearSearch(int n, int[] a, int x)
    {
        for (int i = 0; i < n; i++)
            if (a[i] == x)
                return i;
        return -1;
    }
    //линейный поиск со вставкой
    int LinearSearchIns(int n, int[] a, int x)
    {
        for (int i = 0; i < n; i++)
            if (a[i] == x)
                return i;
        a[n++] = x;
        return n - 1;
    }
    //линейный поиск с барьером
    int SearchBarier(int n, int[] a, int x)
    {
        a[n] = x;
        int i = 0;
        while (a[i] != x)
            i++;
        if (i == n)
            return -1;
        return i;
    }
    //индексно-последовательный поиск
    int IndexSearch(int n, int[] a, int m, int key)
    {
        int i = 0, low, hi;
        while (i < m && kind[i] <= key)
            i++;
        if (i == 0)
            low = 0;
        else
            low = pind[i - 1];
        if (i == m)
            hi = n - 1;
        else
            hi = pind[i] - 1;
        for (int j = low; j <= hi; j++)
            if (a[j] == key)
                return j;
        return -1;
    }
    //бинарный поиск
    int BinarySearch(int n, int[] a, int x)
    {
        int L = 0, R = n - 1, m;
        while (L <= R)
        {
            m = (L + R) / 2;
            if (a[m] == x)
                return m;
            if (a[m] < x)
                L = m + 1;
            else
                R = m - 1;
        }
        return -1;
    }
    int BinarySearch2(int n, int[] a, int x)
    {
        int L = 0, R = n - 1, m;
        while (L < R)
        {
            m = (L + R) / 2;
            if (a[m] < x)
                L = m + 1;
            else
                R = m;
        }
        if (a[R] == x)
            return R;
        else
            return -1;
    }
    void Demo()
    {
        N = 100;
        mas = new int[N + 1];
        kind = new int[N / 3];
        pind = new int[N / 3];
        Random rnd = new Random();
        for (int i = 0; i < N; i++)
        {
            if (i == 0)
                mas[i] = rnd.Next(10);
            else
                mas[i] = mas[i - 1] + rnd.Next(10);
            Console.Write(mas[i] + " ");
        }
        Console.WriteLine();
        //формирование таблицы для индексно-последовательного поиска
        int h = 5;
        int m = 0;
        for (int i = h - 1; i < N; i += h)
        {
            kind[m] = mas[i];
            Console.Write(kind[m] + " ");
            pind[m++] = i;
        }
        Console.WriteLine();
        Console.Write("Введите аргумент поиска: ");
        int arg = Convert.ToInt32(Console.ReadLine());
        int res = IndexSearch(N, mas, m, arg);
        if (res != -1)
            Console.WriteLine("Номер элемента: " + res);
        else
            Console.WriteLine("Элемент не найден");
    }
    static void Main(string[] args)
    {
        SearchDemo sd = new SearchDemo();
        sd.Demo();
    }
}

```