O Doutor, ao tentar escapar das forças de Dalek, decidiu enviá-las girando, viajando em vários bolsos de espaço em um movimento espiral.
Dependendo da natureza do espaço-tempo disponível, o médico precisa entrar no TARDIS controla a altura e a largura da seção do espaço e seu ponto de entrada com o qual iniciar a espiral.
A seção do espaço pode ser vista como uma grade h x w preenchida com números inteiros seqüenciais da esquerda para a direita, de cima para baixo, começando com 1.
A posição inicial é fornecida como rc para a linha e coluna ... A partir disso, o software da TARDIS precisa citar a lista ordenada de números inteiros obtida em espiral para fora no sentido anti-horário a partir da linha r coluna c , começando para cima ...
Sua tarefa, como acompanhante do médico, é programar o TARDIS para receber quatro números no formato height width row columne determinar qual setor de espaço o TARDIS precisa percorrer para coincidir com o movimento espiral descrito abaixo ...
Entrada 1
5 5 3 3
(Grade 5 x 5, começando na posição 3,3)
Saída 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
Explicando a saída
Grade original

Espiral gerada

Entrada 2
2 4 1 2
(Grade 2 x 4 começando na posição 1,2)
Saída 2
2 1 5 6 7 3 8 4
Explicando a saída
Um pouco diferente da espiral agora deve circular ao redor da grade para gerar a saída respectiva ...
Grade original

Espiral gerada

Regras:
Esse é o código-golfe, portanto, o menor tamanho do código é aprovado.
Os exemplos acima devem ser usados para testar seu código. Se não fornecer a respectiva saída, há algo errado ...
As versões de código para golfe e para golfe devem ser fornecidas em sua resposta ...
Boa sorte!