Dicas para o Maratona Linux
Versão do manual: julho/2011 (para o Maratona de Programação
CTBC)
Copyright (c) 2003-2006 Ulisses F. F. da Silva and Cassio P. de Campos.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license may be found in http://www.gnu.org/licenses/
A Maratona de Programação CTBC é um sistema para ser utilizado em competições
como a Maratona de Programação da SBC. Trata-se de uma distribuição Debian Linux
contendo sistema de janelas wmaker 0.91.0 (além do twm), navegador Mozilla
Firefox 1.0.4, editores vim 6.3, emacs 21.4a, ed 0.2, leafpad 0.7.9, nano 1.2.4, nedit 5.5,
eclipse 3.2.0, xwpe 1.5.29a, compiladores gcc 3.3.5, g++ 3.3.5, jdk 1.5.0, fp-compiler
1.9.4 (além de perl, php4, awk, python, etc.), depuradores gdb 6.3 e ddd 3.3.9 (além
dos disponíveis com algumas interfaces) e um sistema de gerenciamento da competição
chamado de BOCA (versão 1.1.1). A lista completa de pacotes disponíveis está aqui.
Cada time terá em sua máquina um disquete inserido no drive, de onde o Maratona
Linux é iniciado. Esse disquete não deve ser retirado em momento algum! Isso
caracteriza uma violação de conduta da equipe. Para utilizar o sistema o time deverá
logar com o nome de usuário e senha teamX (onde X é o número do seu time). Você
não precisa se preocupar com a segurança desta senha, pois apenas o seu time tem
autorização para se logar apenas nesta máquina. Depois de logar, o time estará no
sistema gerenciador de janelas chamado WindowMaker (caso esteja em modo texto,
basta digitar o comando startx). Para ter acesso às aplicações, basta clicar com o botão
direito do mouse na tela, que um menu aparecerá. Uma exceção faz-se para o eclipse:
execute-o a partir de um prompt de comando, pois o mesmo não está disponível nos
menus. Problemas com o ambiente devem ser comunicados ao pessoal de staff.
Não é permitido o acesso à internet durante a competição, bem como não é permitido
qualquer tipo de violação de acesso a áreas/usuários da própria máquina ou de outras.
Toda a atividade das equipes estará sendo monitorada pelo pessoal de administração do
sistema e equipes infratoras serão punidas.
Dependendo da linguagem em que foram escritas, as soluções submetida serão
compiladas com compiladores e linhas de compilação diferentes. A seguir estão as
linhas de compilação que serão usadas pelos juízes para as linguagens disponíveis.
Todos os exemplos terão como nome do programa convhull mais o sufixo
correspondente da linguagem:
Linguagem
C
C++
Java
Linha de comando de compilação
gcc -lm convhull.c -oconvhull
g++ -lm convhull.cpp -oconvhull
javac convhull.java
(As extensões dos arquivos utilizadas nos exemplos podem variar de acordo com a
competição. Informe-se.) Estas linhas de compilação poderão ser usadas pelos times
para testarem suas soluções antes de as submeterem (no caso do Java, lembre-se que a
classe principal deve ter exatamente o mesmo nome do arquivo fonte). Sugerimos que
a equipe crie um arquivo texto de entrada, por exemplo convhull.in, e então execute seu
programa em uma janela shell usando esse arquivo no redirecionamento da entrada
padrão:
Linguagem
C
C++
Java
Linha de comando de execução
./convhull < convhull.in
./convhull < convhull.in
java convhull < convhull.in
Os juízes farão procedimento semelhante para compilar e testar os programas (claro que
com outras opções de segurança no ambiente...). A tentativa de enviar/executar códigos
maliciosos será punida.
Sugerimos aos times testarem todas as aplicações relevantes disponíveis no sistema
durante a sessão de aquecimento (warmup), antes de iniciar a competição. Também é
interessante que os times façam algum tipo de preparação prévia com os aplicativos que
irão encontrar no sistema (quase todo ambiente Linux possui tais aplicativos).
Lembramos que os arquivos criados durante o warmup são apagados antes do início da
competição oficial.
O pessoal de staff é responsável por configurar as máquinas dos times de forma a
facilitar seu uso e proporcionar uma competição justa. Procure-os caso haja
necessidade. Ainda assim, alguns detalhes podem ser feitos pela própria equipe, como
reconfigurar o teclado: basta executar o script /etc/maratona/teclado.sh no prompt de
comando. Solicite ajuda se achar necessário.
Sobre o Maratona Linux
O Maratona Linux foi preparado por Cassio Polpo de Campos (EACH-USP),
responsável pela administração dos sistemas da Maratona de Programação. Esse manual
foi feito por Ulisses Furquim Freire da Silva (IC-Unicamp) e complementado e
atualizado por Cassio Polpo de Campos.
Download

Dicas para o Maratona Linux