Plugins no topcoder

As dicas a seguir foram dadas por Pedro Demasi na lista nacional da maratona: maratona@yahoogrupos.com.br.



Como prometido, vou colocar um "guia rápido" para instalação dos plugins do TopCoder (FileEdit, CodeProcessor e TZTester). Com esse "combo", vcs vão poder usar o editor que quiserem para programar, e os casos de exemplo já são testados automaticamente quando você roda o programa localmente. O guia serve só para quem for usar C++, já que o TZTester não funciona com Java.

Parece meio grande, mas é rápido fazer isso tudo, coloquei bem passo a passo, então acho que não deve haver problemas. Qualquer coisa me avisem.

  1. Obviamente você tem de ter Java instalado na sua máquina para poder rodar a arena.

  2. Baixe os três plugins:

  3. Coloque os 3 jar no mesmo diretório (mesmo não sendo obrigatório, não vejo motivos para colocar num diretório diferente).

  4. Abra a arena e vá em Options -> Editor

  5. Clique em Add

  6. Preencha Name como FileEdit e EntryPoint como fileedit.EntryPoint

  7. Em ClassPath, clique em Browse, encontre o arquivo FileEdit.jar e selecione-o.

  8. Clique em ok.

  9. Agora clique em Add novamente.

  10. Preencha as informações Name como CodeProcessor e EntryPoint como codeprocessor.EntryPoint

  11. Em ClassPath, clique em Browse, encontre o arquivo FileEdit.jar e selecione-o. Faça o mesmo procedimento para CodeProcessor.jar e para TZTester.jar (isso mesmo, os 3 jar vão ficar no ClassPath).

  12. Clique em ok.

  13. Mais uma vez clique em Add.

  14. Preencha as informações Name como TZTester e EntryPoint como codeprocessor.EntryPoint (ATENÇÃO, o EntryPoint do TZTester é o mesmo do CodeProcessor!)

  15. Igual ao passo 11 (colocar os 3 jar no ClassPath).

  16. Clique em Ok.

  17. Agora selecione o FileEdit e clique em Configure.

  18. Na tab General, deixe DESMARCADA as opção "Backup existing file...". Aconselho a deixar MARCADAS as opções "Make filename equal to classname" e "Write Problem Description to separate file". Na opção "Enter directory to read/write problems to" coloque o path completo do diretório em que vc pretende que os fontes sejam criados e lidos pela arena (eu normalmente uso o mesmo dos plugins, para deixar tudo num lugar só).

  19. Na tab Code Template, selecione C++ como Language (ATENÇÃO! Mesmo sendo C++ sua linguagem default, a linguagem que aparece primeiro nessa configuração é Java, por isso não se esqueça de escolher C++).

  20. Agora apague o template que aparece e cole o que se encontra no final da página, na seção "Código" (recomendo fortemente).

  21. Clique em Save, a arena deve mostrar uma mensagem dizendo que foi salvo com sucesso, clique em Ok e, finalmente, em Close.

  22. Selecione o CodeProcessor e clique em Configure.

  23. Em Editor EntryPoint coloque fileedit.EntryPoint e em Processor Class coloque tangentz.TZTester

  24. Clique em Save, depois em Ok e finalmente em Close.

  25. Selecione o TZTester e clique em Configure.

  26. Verifique se as informações preenchidas estão iguais ao inidcado em 23, senão preencha da mesma maneira.

  27. Clique em Save, depois em Ok e finalmente em Close.

  28. Agora deixe apenas o TZTester marcado como Default e os demais todos desmarcados.

  29. Clique em Save, depois em Ok e finalmente em Close.

  30. Agora feche a arena e inicie novamente para as mudanças terem efeito. Entre numa practice room qualquer e abra algum problema. Se tudo tiver dado certo, na parte de cima haverá a descrição do problema e, na parte de baixo da janela (Activity Log), vai aparecer algumas mensagens falando da criação do arquivo fonte. Abra o arquivo no seu editor preferido (por exemplo, gvim) e comece a programar... :)

Código
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

using namespace std;

class $CLASSNAME$
{
    public:
    $RC$ $METHODNAME$($METHODPARMS$)
    {
        return(0);
    }
    $TESTCODE$
};

// BEGIN CUT HERE
int main()
{
    $CLASSNAME$ ___test;
    ___test.run_test(-1);
}
// END CUT HERE
Disclaimers | Last Update: 08/03/2010 09:34 | Visitors: