Как тестируются задачи

Вам нужно написать программу, которая содержит только требуемую функцию (можно несколько функций, если одна функция будет вызывать другую). Программа не должна содержать никакого кода вне функций.

В тестирующей системе после вашей программы будет добавлен следующий код, после чего решение будет проверено на тестах.

Задание A

int main()
{
    int n, m;
    cin >> n >> m;
    reduce_fraction(n, m);
    cout << n << " " << m << endl;
    return 0;
}

Задание B

int main()
{
    int a, b, q, r;
    cin >> a >> b;
    div_mod(a, b, q, r);
    cout << q << " " << r << endl;
    return 0;
}

Задание C

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    int key;
    cin >> key;
    cout << find(a, n, key) << endl;
}

Задание D

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    int start, size;
    cin >> start >> size;
    reverse(a + start, size);
    for (int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << endl;
}

Задание E

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    int k;
    cin >> k;
    shift(a, n, k);
    for (int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << endl;
}

Задание F

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    int * b = new int[n];
    for (int i = 0; i < n; ++i)
    {
        cin >> a[i];
        b[i] = a[i];
    }
    move_front(a, n);
    move_back(b, n);
    for (int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << endl;
    for (int i = 0; i < n; ++i)
        cout << b[i] << " ";
    cout << endl;
}

Задание G

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    bell(a, n);
    for (int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << endl;
}

Задание H

int main()
{
    int n;
    cin >> n;
    int * a = new int[n];
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    int k = compress(a, n);
    if (k < 0 || k > n)
    {
        cout << "Функция вернула неверное значение" << endl;
        return 0;
    }
    for (int i = 0; i < k; ++i)
    {
        if (a[i] == 0)
        {
            cout << "Среди первых элементов массива есть нулевой" << endl;
            return 0;
        }
    }
    for (int i = k; i < n; ++i)
    {
        if (a[i] != 0)
        {
            cout << "Среди последних элементов массива есть ненулевой" << endl;
            return 0;
        }
    }
    for (int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << endl;
}

Задание I

int main()
{
    int n;
    cin >> n;
    int ** a = pascal(n);
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j <= i; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
}

Задание J

int main()
{
    int n, k, s;
    cin >> n >> k >> s;
    int ** a = square(n, k, s);
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
}