Sua tarefa é regular o tráfego em uma encruzilhada. Existem 4 estradas vindas do norte, leste, sul e oeste.
A entrada é uma sequência que representa o tráfego próximo em cada estrada. Por exemplo, NNNWS
indica que há um total de 5 carros: três no norte, um no oeste e um no sul. A ordem dos caracteres não tem importância aqui, NNNWS
é equivalente a WNNSN
.
Você deve emitir a ordem em que os carros devem seguir, usando a prioridade da regra correta: os carros vindos do sul devem deixar os carros vindos do leste irem primeiro, o leste dá lugar ao norte, o norte dá lugar ao oeste e o oeste dá lugar a sul.
Por exemplo, com a entrada NNNWS
, o carro sul deve ir primeiro, depois o carro oeste, depois os 3 carros norte. A saída deve ser assim SWNNN
.
Existem alguns casos indecidíveis, por exemplo NS
ou NNWSE
: você deve então gerar a string stuck
.
Casos de teste
N => N
NW => WN
NWS => SWN
SNW => SWN
SSSSS => SSSSS
ENNNNES => NNNNEES
NS => stuck
NNWSE => stuck
stuck
.NS
preso? Porque ambosNS
eSN
seria uma solução?Respostas:
Perl, 65 bytes
Inclui +2 para
-lp
Dê entrada no STDIN. Assume que a sequência vazia não é uma entrada válida
Se você não se importa com a ausência de uma nova linha depois de
stuck
soltar al
opçãofonte
PHP, 267 bytes
use o novo operador de nave espacial e use -5 bytes por @IsmaelMiguel
Demolir
fonte
function c($x,$y){global$t,$p;return$p($t,$x)<=>$p($t,$y);}$a=str_split($i);usort($a,c);
, você pode usar$a=str_split($i);usort($a,function($x,$y)use($t,$p){return$p($t,$x)<=>$p($t,$y);});
e salvar 5 bytes. O operador da nave espacial realmente ajudou com esse tipo de classificação. Para você entender o que eu fiz, mudei a função para dentrousort()
, tornando-a anônima. Então, em vez deglobal
(NUNCA use), eu useifunction(...)use($t,$p){...}
. Ause(...)
sintaxe permite que você passe variáveis para o corpo da função anônima (também aceita recerências).use()
pouco em funções anônimas. Você deve usá-lo e abusar dele.Lote, 216 bytes
Porta simples da minha resposta JavaScript. Coloca entrada em STDIN em maiúsculas ou minúsculas.
fonte
JavaScript (ES6),
108107106104 bytesAcumula uma máscara de bits cujas direções se aproximam dos carros e extrai a parte apropriada da sequência de prioridade.
fonte
Uncaught SyntaxError: Invalid regular expression: missing /