Objetivo
Dada uma grade de números, preencha as desigualdades.
Suposições
O número de colunas e linhas na grade é igual.
O tamanho máximo da grade é 12x12.
A grade consiste apenas de números inteiros 0-9.
A saída pode conter uma nova linha à direita.
A entrada é exatamente como está escrito abaixo, incluindo espaços e novas linhas.
Exemplo de entrada
4 2 3 1
6 2 3 1
6 9 2 1
0 2 1 6
Saída de exemplo
4>2<3>1
^ " " "
6>2<3>1
" ^ v "
6<9>2>1
v v v ^
0<2>1<6
Exemplo de entrada (2)
1 2 3 4 5
5 4 3 2 1
0 0 0 3 2
3 2 0 0 0
2 1 3 1 5
Exemplo de saída (2)
1<2<3<4<5
^ ^ " v v
5>4>3>2>1
v v v ^ ^
0=0=0<3>2
^ ^ " v v
3>2>0=0=0
v v ^ ^ ^
2>1<3>1<5
Exemplo de entrada (3)
8
Exemplo de saída (3)
8
Exemplo de entrada (4)
0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 0
0 1 2 3 4 5 6 7 8 9 1 0
0 1 3 9 8 7 6 5 4 8 1 0
0 1 4 8 9 8 7 6 5 7 1 0
0 1 5 7 8 9 9 7 6 6 1 0
0 1 6 6 7 9 9 8 7 5 1 0
0 1 7 5 6 7 8 9 8 4 1 0
0 1 8 4 5 6 7 8 9 3 1 0
0 1 9 8 7 6 5 4 3 2 1 0
0 1 1 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0
Exemplo de saída (4)
0=0=0=0=0=0=0=0=0=0=0=0
" ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ "
0<1=1=1=1=1=1=1=1=1=1>0
" " ^ ^ ^ ^ ^ ^ ^ ^ " "
0<1<2<3<4<5<6<7<8<9>1>0
" " ^ ^ ^ ^ " v v v " "
0<1<3<9>8>7>6>5>4<8>1>0
" " ^ v ^ ^ ^ ^ ^ v " "
0<1<4<8<9>8>7>6>5<7>1>0
" " ^ v v ^ ^ ^ ^ v " "
0<1<5<7<8<9=9>7>6=6>1>0
" " ^ v v " " ^ ^ v " "
0<1<6=6<7<9=9>8>7>5>1>0
" " ^ v v v v ^ ^ v " "
0<1<7>5<6<7<8<9>8>4>1>0
" " ^ v v v v v ^ v " "
0<1<8>4<5<6<7<8<9>3>1>0
" " ^ ^ ^ " v v v v " "
0<1<9>8>7>6>5>4>3>2>1>0
" " v v v v v v v v " "
0<1=1=1=1=1=1=1=1=1=1>0
" v v v v v v v v v v "
0=0=0=0=0=0=0=0=0=0=0=0
Respostas:
Pitão, 46 bytes
Experimente online: Demonstração
fonte
CJam, 52 bytes
Experimente on-line no intérprete CJam .
Agradecemos a @CroCo por apontar um bug na revisão 3.
Agradecemos a @Pyrrha por apontar um bug na revisão 6.
Como funciona
fonte
Python 2,
207197 bytesEssa cria uma função f que pega a grade de números como uma string e retorna a string correspondente com desigualdades preenchidas.
A função itera sobre cada caractere na string. Se o caractere for um espaço, ele será substituído pela desigualdade dos números de ambos os lados. Se o caractere e o próximo caractere forem novas linhas, a linha inteira será substituída pelas desigualdades de todos os números acima e abaixo.
Aqui está a saída da função para cada um dos exemplos na pergunta, exceto o realmente longo:
fonte
C,
552408 bytesIsso é uma bagunça, mas funciona com os casos de teste (para o solo
8
, a entrada deve ser seguida por uma nova linha para funcionar corretamente)Aqui está a versão expandida; Eu adoraria aqui maneiras de como eu poderia jogar isso de forma mais eficaz. Eu sei que há muito a ser melhorado aqui.
fonte
s=t>b?'v':t<b?'^':'"';
Observe que verificar se dois valores são iguais depois que você já verificou se um ou outro é maior é desnecessário. Existem apenas 3 possibilidades.JavaScript (ES6) 162
fonte
Haskell, 201 bytes
g
espera uma string.fonte