Доктор, намагаючись врятуватися від сил Далека, вирішив посилати їх спіном, мандруючи по різних кишенях простору спіральним рухом.
Залежно від характеру наявного простору-часу, Лікар потребує введення в систему TARDIS контролю висоти та ширини перерізу простору та точки входу, з якої починається спіраль.
Розділ простору можна представити у вигляді сітки h x w, заповненої послідовними цілими числами зліва направо, зверху вниз, починаючи з 1.
Вихідне положення надається у вигляді rc для рядка та стовпця ... З цього програмного забезпечення TARDIS потрібно виплюнути впорядкований список цілих чисел, отриманих шляхом спіралі назовні в напрямку проти годинникової стрілки з рядка r стовпця c , починаючи вгору ...
Ваше завдання, як супутника Доктора, - запрограмувати ТАРДІС, щоб він взяв чотири числа у форматі, height width row columnі він визначив, у якому просторі потрібно подорожувати ТАРДІС, щоб відповідати спіральному руху, описаному нижче ...
Введення 1
5 5 3 3
(5 х 5 сітки, починаючи з положення 3,3)
Вихід 1
13 8 7 12 17 18 19 14 9 4 3 2 1 6 11 16 21 22 23 24 25 20 15 10 5
Пояснення виходу
Оригінальна сітка

Створена спіраль

Введення 2
2 4 1 2
(2 х 4 сітка, починаючи з положення 1,2)
Вихід 2
2 1 5 6 7 3 8 4
Пояснення виходу
Трохи інший, як спіраль, тепер повинен кружляти навколо сітки для отримання відповідного виходу ...
Оригінальна сітка

Створена спіраль

Правила:
Це код-гольф, тому найкоротша довжина коду отримує галочку схвалення.
Наведені вище приклади повинні бути використані для тестування вашого коду. Якщо він не забезпечує відповідний вихід, щось не так ...
У вашій відповіді повинні бути вказані версії коду для гольфу та для гольфу ...
Удачі!