Il Dottore, nel tentativo di fuggire dalle forze di Dalek, ha deciso di mandarle in un viaggio viaggiando in varie tasche dello spazio con un movimento a spirale.
A seconda della natura dello spazio-tempo disponibile, Il Dottore deve entrare nel TARDIS controlla l'altezza e la larghezza della sezione dello spazio e il suo punto di ingresso con cui iniziare la spirale.
La sezione dello spazio può essere immaginata come una griglia h x w riempita con numeri interi sequenziali da sinistra a destra, dall'alto verso il basso, a partire da 1.
La posizione iniziale è fornita come rc per la riga e la colonna ... Da questo il software TARDIS deve sputare la lista ordinata di numeri interi ottenuti facendo una spirale verso l'esterno in senso antiorario dalla riga r colonna c , iniziando verso l'alto ...
Il tuo compito, come compagno del dottore, è programmare il TARDIS in modo che prenda quattro numeri, nel formato height width row columne faccia in modo che determini quale settore di spazio il TARDIS deve percorrere per adattarsi al movimento a spirale descritto di seguito ...
Ingresso 1
5 5 3 3
(Griglia 5 x 5, a partire dalla posizione 3,3)
Uscita 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
Spiegare l'output
Griglia originale

Spirale generata

Ingresso 2
2 4 1 2
(Griglia 2 x 4 a partire dalla posizione 1,2)
Uscita 2
2 1 5 6 7 3 8 4
Spiegare l'output
Leggermente diverso come la spirale ora deve girare attorno alla griglia per generare il rispettivo output ...
Griglia originale

Spirale generata

Regole:
Questo è code-golf, quindi la lunghezza del codice più breve ottiene il segno di spunta dell'approvazione.
Gli esempi sopra devono essere usati per testare il tuo codice. Se non fornisce il rispettivo output, c'è qualcosa che non va ...
Nella tua risposta devono essere fornite sia le versioni golfizzate sia quelle non golfizzate ...
In bocca al lupo!