Configurando Seu Fluxo de Trabalho para Programação Competitiva em Kotlin

Tempo de leitura: 5 minutes

Esta é uma continuação do meu artigo anterior, onde o convenço a experimentar o Kotlin para Programação Competitiva. Mas se você já está convencido, este artigo é para você! É um guia passo a passo para configurar seu ambiente local.

O que estamos buscando

Seu fluxo de trabalho local deve ajudá-lo a alcançar algumas coisas diferentes:

  1. Um processo consistente para iniciar um novo concurso e para criar novos arquivos de solução.
  2. Acesso rápido ao código repetitivo que é necessário para ler a entrada e escrever a saída em todos os problemas
  3. Acesso a ferramentas como o Intellisense, um Read-Eval-Print Loop (REPL) e uma interface de depuração.

A configuração a seguir garante tudo isso para você.

Configuração: guia passo a passo

Passo 1

Baixe e instale o IntelliJ IDEA (Community Edition) em seu sistema.

Passo 2

Baixe a versão mais recente do arquivo kotlin-cp.zip desta página de versões do GitHub.

Passo 3

Inicie o IDE e vá para File -> Import Settings.

Importe o arquivo de configurações que você baixou na Passo 2.

Clique OK.

Reinicie o Intellij IDEA.

Uso: guia passo a passo

Digamos que você queira participar deste concurso CodeForces (CodeForces Global Round 8).

Vamos examinar o fluxo de trabalho típico:

Passo 1 – Criação de um novo projeto para o concurso

Comece criando um projeto Kotlin com o nome apropriado:

Passo 2 – Criação de um novo arquivo para um problema

Agora, digamos que você queira resolver o primeiro problema do concurso:

Crie um novo arquivo para começar a escrever a solução. Primeiro selecione a pasta src no painel de navegação do Projeto:

Em seguida, pressione alt + N para criar um novo arquivo de solução (este atalho vem das configurações que você importou do arquivo kotlin-cp.zip anteriormente). Nomeie o novo arquivo com base no título do problema:

Digressão: entendendo o modelo (pule se quiser)

Antes de começar a codificar a solução, você terá que entender o modelo. Você pode ver o código-fonte completo do modelo aqui. É baseado no modelo nesta postagem do blog (por Spheniscine, em CodeForces).

Na parte superior, você tem um conjunto de funções convenientes para analisar a entrada do console:

As funções são todas declaradas privadas, porque cada arquivo de solução deve ser independente. Quando você criar um novo arquivo para o próximo problema, ele declarará o mesmo conjunto de funções, mas elas serão privadas apenas para aquele arquivo, assim como são privadas apenas para este arquivo.

Essas funções de análise de entrada são usadas em main:

O código real para resolver cada caso de teste é escrito na função solveTestCase() da classe de solução. Observe que o nome da classe é igual ao nome do arquivo fornecido anteriormente:

Esta classe é declarada privada, caso haja necessidade de usar as funções de análise de entrada dentro dela.

Ok, agora de volta às etapas.

Passo 3: analisar a entrada do console

Observe que a primeira linha da função main se encarrega de ler o número de casos de teste e fazer um loop sobre eles:

Você só precisa escrever o código para analisar os casos de teste individuais:

E forneça a entrada analisada para a chamada de função solveTestCase():

Observe que um erro aparece assim que você fornece as entradas para solveTestCase(). Isso porque você ainda não escreveu a definição da função. Faz parte da próxima etapa.

Passo 4 – Escrevendo o código para resolver o problema

Primeiro, você precisa alterar a assinatura da função para corresponder à chamada na função principal. Isso pode ser feito na lista suspensa “error bulb”:

Isso adicionará os argumentos de entrada apropriados à função solveTestCase():

Em seguida, altere o tipo de saída para a função e escreva sua solução:

Digressão: ferramentas úteis

Se você deseja executar o código enquanto fornece entrada do console, pressione Ctrl + Shift + F10:

Se você quiser depurar o código, coloque um ponto de interrupção na sarjeta esquerda ao lado da linha de onde deseja iniciar a depuração e pressione Shift + F9:

Se você deseja abrir o REPL do Kotlin para testar algum código rapidamente, pode fazer isso pressionando Alt + K (este atalho foi adicionado nas configurações do arquivo kotlin-cp.zip):

Passo 5 – Envie sua solução

Como o código do arquivo é independente, o envio é fácil.

Em alguns sites, você copia e cola todo o conteúdo do arquivo em um editor. Em CodeForces, você precisa fazer o upload do arquivo:

Conclusão

E é isso!

Pode parecer longo porque tentei ser o mais explícito possível sobre todas as coisas que você precisa fazer. Mas siga essas etapas uma ou duas vezes, e logo você estará fazendo tudo isso em questão de segundos.

Ah, e reserve um tempo para se familiarizar com o depurador (Shift + F9) e o REPL do Kotlin (Alt + K) mais tarde – eles são muito úteis na prática.

Boa codificação!