NumPy: прямоугольный срез вместо цепочечной индексации

Найди и исправь: цепочечная индексация вместо прямоугольного среза

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет.

В редакторе уже есть сломанный код. Он пытается выполнить три операции над двумерным массивом, но в каждой допущена ошибка: либо применена цепочечная индексация вместо одного выражения, либо перепутан целый индекс со срезом, либо неверно задан шаг.

Что нужно сделать

Найдите и исправьте все три ошибки так, чтобы программа:

  1. Читала из stdin одну строку с четырьмя целыми числами: R, C, r, c.
  2. Создавала двумерный массив arr через np.arange(R * C).reshape(R, C).
  3. Вычисляла три результата и выводила их shape в три отдельные строки:
  • res1: прямоугольный блок строк 0..r-1 и столбцов 0..c-1 — shape должен быть (r, c);
  • res2: каждая вторая строка (начиная с 0) и каждый второй столбец (начиная с 0) — shape должен быть (ceil(R/2), ceil(C/2));
  • res3: столбец c-1 целиком как одномерный массив — shape должен быть (R,).

Shape выводите строго в формате Python: (n,) для одномерных, (r, c) для двумерных.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

Одна строка: четыре целых числа R C r c, разделённые пробелами. Гарантируется: 1 <= r <= R, 1 <= c <= C.

Формат вывода

Три строки — shape результатов res1, res2, res3 в указанном порядке.

Пример

Ввод
4 6 2 3
Вывод
(2, 3)
(2, 3)
(4,)
РешениеPython

Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.

Отправьте решение, чтобы увидеть результаты тестов.

Связанные задачи