The Doctor, dalam upaya melarikan diri dari pasukan Dalek telah memutuskan untuk mengirim mereka dalam putaran dengan melakukan perjalanan di berbagai kantong ruang dalam gerakan spiral.
Tergantung pada sifat ruang-waktu yang tersedia, Dokter perlu masuk ke dalam TARDIS mengontrol ketinggian dan lebar bagian ruang dan titik masuknya untuk memulai spiral.
Bagian ruang dapat dibayangkan sebagai h x w kotak diisi dengan bilangan bulat berurutan dari kiri ke kanan, atas ke bawah, dimulai dengan 1.
Posisi awal disediakan sebagai rc untuk baris dan kolom ... Dari sini, perangkat lunak TARDIS perlu memuntahkan daftar bilangan bulat yang diperoleh dengan memutar ke arah luar dalam arah berlawanan jarum jam dari baris r kolom c , mulai ke atas ...
Tugas Anda, sebagai pendamping Dokter adalah memprogram TARDIS untuk mengambil empat angka, dalam format height width row columndan menentukannya untuk sektor ruang mana yang perlu dilalui TARDIS untuk menyesuaikan dengan gerakan spiral yang dijelaskan di bawah ...
Input 1
5 5 3 3
(5 x 5 kisi, mulai dari posisi 3,3)
Output 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
Menjelaskan output
Kotak asli

Spiral yang dihasilkan

Input 2
2 4 1 2
(2 x 4 grid mulai dari posisi 1,2)
Keluaran 2
2 1 5 6 7 3 8 4
Menjelaskan output
Sedikit berbeda karena spiral sekarang harus melingkari grid untuk menghasilkan output masing-masing ...
Kotak asli

Spiral yang dihasilkan

Aturan:
Ini adalah kode-golf, sehingga panjang kode terpendek mendapat tanda persetujuan.
Contoh di atas harus digunakan untuk menguji kode Anda. Jika tidak memberikan output masing-masing, ada yang salah ...
Versi kode golf dan golf harus diberikan dalam jawaban Anda ...
Semoga berhasil!