Nesse desafio, você precisa resolvê-lo.
O concurso acabou! Verifique o final da pergunta
Especificações:
- Escreva o menor código (qualquer idioma *).
- A pontuação de uma resposta é a soma de:
- Comprimento do código sem espaço em branco .
- Número de respostas usando o mesmo idioma ao quadrado.
- Tamanho do nome do maior idioma do concurso menos o tamanho do seu idioma.
- Votos negativos menos Votos positivos (também conhecido como total negativo de menos)
- Escreva a posição dos usuários e a pontuação.
- Cada usuário pode escrever apenas uma resposta.
- A pontuação mais baixa vence.
Teste:
Portanto, no final do concurso, uma possível entrada poderia ser (STDIN):
As colunas são: Nome de usuário, Idioma, Comprimento do código (sem espaço em branco) e TotalVotes
UserA Python 100 1
UserB Perl 30 2
UserC Java 500 3
UserD Brainfuck 499 4
UserE Perl 29 5
Se o seu nome de usuário tiver espaços como "Meu nome de usuário", ele se tornará "Meu nome de usuário", portanto a entrada sempre terá exatamente 4 colunas .
A saída será (STDOUT):
1 UserE 33
2 UserB 37
3 UserA 103
4 UserD 496
5 UserC 503
Explicação:
User P N^2 L V
A 100 1 3 -1
B 30 4 5 -2
C 500 1 5 -3
D 499 1 0 -4
E 29 4 5 -5
Brainfuck é o maior nome com 9 caracteres ( 9 - 9 = 0
).
Perl e Java possuem 4 caracteres ( 9 - 4 = 5
).
Python possui 6 caracteres ( 9 - 6 = 3
).
Perl tem 2 entradas para que cada um ganhe 4 pontos extras.
Sobre idiomas:
O nome do idioma deve conter apenas letras em inglês (ou seja, [A-Za-z]) e aquelas que não se encaixam devem ser "traduzidas" para outra coisa.
No final do concurso, todos os idiomas devem ter sua representação (você pode propor melhores representações)
Exemplos:
Python3 -> Python
Ruby1.9 -> Ruby
Shell Script -> Shell
C++ -> Cpp
C# -> CSharp
><> -> Fish
Prazo: 20 de agosto de 2011 00:00 UTC
No final do concurso, o vencedor deve usar seu programa para encontrar o vencedor. É permitido aos não vencedores usarem seus programas para encontrar o vencedor e pedir que ele use seu programa para encontrar o vencedor. :)
O vencedor (veja acima) recebe a resposta aceita!
* A linguagem Whitespace tem a vantagem injusta de poder introduzir complexidade ilimitada sem penalizar a contagem de caracteres. As respostas escritas em espaço em branco podem estar no concurso, mas não podem vencer.
Se você pode fazer a lógica do seu programa em espaços em branco , também não pode vencer. Esse é um tópico subjetivo, mas se o seu programa pode aumentar consideravelmente em tamanho sem ser penalizado, ele cai nessa condição.
Entrada final
Ordem alfabética dos nomes (em 20 de agosto de 2011 UTC 00:00)
boothby Sage 41 9
Harpyon Python 203 4
JBernardo Python 184 7
JoeyAdams PostgreSQL 225 6
jpjacobs AWK 269 4
Lowjacker Ruby 146 2
PeterTaylor Golfscript 82 4
rmackenzie CommonLisp 542 2
shesek Javascript 243 3
userunknown Scala 252 1
Como as respostas da minha e do boothby não estão autorizadas a vencer, o vencedor deve se proclamar o vencedor editando esta pergunta e publicando a saída final abaixo.
Saída final
1 boothby 39
2 PeterTaylor 79
3 Lowjacker 151
4 JBernardo 185
5 Harpyon 207
6 JoeyAdams 220
7 shesek 241
8 userunknown 257
9 jpjacobs 273
10 rmackenzie 541
Respostas:
Golfscript, 83 caracteres (82 sem contar o espaço em branco)
Explicação:
fonte
Sábio:
484241 sem espaço em branco (60246 bytes no total)Só para ser um idiota:
Observe que a primeira linha deve ser equivalente a
s='\t'
, mas o bloco de código SE converte a guia em 4 espaços.O espaço em branco descompacta para:
Observe que meu uso de
[0..len(inputs)-1]
garante que este não seja um script Python, pois o Sage é um superpython *. Infelizmente, o executivo recorre ao Python ... então eu tenho que prepará-lo.edit 1: dividir abas, não novas linhas - o que eu estava pensando? edit 2: facilitou o código aos olhos e reciclou a aba de divisão, empurrando outra 'nova linha' para o espaço em branco
* ok, não exatamente: nós quebramos xor
fonte
Python, 184
É por isso que amo espaços.
É muito mais legível!
fonte
PostgreSQL - 225 caracteres não espaciais
242 → 225: Subconsultas substituídas por cláusulas de janelas .
testado em 9.2devel
Uso e saída:
fonte
Python 2 -
210203 caracteres não espaciaisUso e saída:
fonte
x.split()
(que também irá remover\n
)AWK,
277269 caracteres não espaciaisUsado
in
para cortar 8 caracteres.Versão espaçada e versão comentada:
uso:
fonte
sed '/#/ d' meta.awk|sed ':a;$!N;s/\n//;ta;s/\s//g;'|wc -c
para contar caracteres.Ruby, 146 caracteres + 4 espaços
fonte
JavaScript, 243 caracteres
Mais do que a maioria das outras soluções ... mas o melhor que eu poderia criar em JavaScript.
Uso
A entrada deve estar em uma variável J. Por exemplo, abra um console e escreva:
CoffeScript, 177 caracteres
Sobre a mesma lógica, no CoffeScript:
fonte
length
atributo usando uma variável e subscritos.Lisp comum - 546
(quando garoto de golfe consolida parênteses, sem contar espaços)
Fortemente jogado, minha solução comum de lisonjas era e é a mais longa do jogo. Então decidi trapacear um pouco, escrevendo um gerenciador de inicialização significativamente mais curto e afirmando isso como meu envio.
(Considero que a submissão de @ Boothby é um precedente a favor desse comportamento)Agradecimentos importantes a Peter Taylor por sua ajuda para extrair todos os caracteres do bootstrapper.
BASH - 35
Uso : cat ./test0 | bash ./btstrp.sh
Joey Adams apontou que essa não é uma solução justa, porque eu posso "aumentar arbitrariamente a complexidade da sua solução sem um aumento correspondente no tamanho do código", um ponto que não está claramente expresso nas especificações.
fonte
$REPLY
. Tentewhile read x;do a=$x"\n"$a;done
. E você deve poder remover os espaços após os|
na última linha. Em outra nota, não tenho certeza de que usar um endereço IP interno seja muito útil: ele não funcionará para mais ninguém.wget -q http://url/l.lsp ;cat - |clisp l.lsp
Scala
269 266252 sem espaços em branco e novas linhas.Invocação:
atualizações:
minha solução:
*) fora de competição
fonte
stdin
vez defromFile(System.in)
.