Maratona de Programação


Sobre

A Maratona de Programação é um evento da Sociedade Brasileira de Computação que existe desde o ano de 1996. A Maratona se destina a alunos de cursos de graduação e início de pós-graduação na área de Computação e afins (Ciência da Computação, Engenharia de Computação, Sistemas de Informação, Matemática, etc). A competição promove nos alunos a criatividade, a capacidade de trabalho em equipe, a busca de novas soluções de software e a habilidade de resolver problemas sob pressão.



Patrocínio Nelogica

A Nelogica atua no fornecimento de informações e no desenvolvimento de aplicações avançadas para o mercado financeiro. A flexibilidade de sua linha de produtos faz com que sua carteira de clientes seja formada por investidores individuais, institucionais, corretoras, bancos, empresas de capital aberto, fundações e consultorias. Através da criação de softwares inovadores, proporciona aos investidores um processo de tomada de decisão muito mais seguro, estruturado e preciso.


Como Participar

A Maratona é dirigida a alunos de cursos superior da área de computação e afins: Ciência da Computação, Engenharia de Computação, Sistemas de Informação, etc. Cada escola poderá inscrever mais de um time (veja as regras do concurso para mais detalhes).

Fases

A Maratona ocorre em duas fases. A primeira fase será eliminatória, e ocorrerá simultaneamente no dia 14 de setembro de 2019 em várias sedes espalhadas por todo o Brasil. Na nossa região a UFN será a instituição que hospedará a competição. A final brasileira acontecerá entre os dias 8 e 9 de novembro de 2019 em Campina Grande, e contará com os times classificados nas várias sedes na primeira fase. Veja as regras do concurso para mais detalhes.

Inscrições

Para efetuar a inscrição o time deverá ter um representante da instituição a que os alunos pertencem, ou alguém por ele indicado, que é o "coach". Este atestará junto à organização do concurso que os integrantes dos times de sua instituição atendem os requisitos para participar da competição. Cada time é composto por um "coach" (que poderá ser docente do curso ou deverá ser indicado por um docente para este fim), três integrantes (veja as regras do concurso para mais detalhes sobre a elegibilidade de cada integrante) e um reserva. Se você deseja competir na Maratona, forme seu time! Procure um professor de seu curso para que ele ajude você e seu time sendo o coach, e informe-o dos procedimentos de inscrição. Se você é professor de uma instituição de ensino superior da área de computação ou afim, reúna seus alunos e monte seus times! Se não tem havido sedes da Maratona na sua região candidate sua instituição para sediar a Maratona! Veja as datas importantes . Não perca os prazos!!!

Final

A final brasileira da competição ocorrerá em dois dias cheios (8 e 9/11). No primeiro dia ocorre a abertura, a sessão de aquecimento e outros eventos importantes. É fundamental a participação dos times neste primeiro dia! No segundo dia ocorre a competição e a festa de encerramento do concurso. A organização do concurso oferecerá auxílio para os times de fora da sede para hospedagem durante as finais.


Datas Importantes

MAIO

Até 06/05/2019

As instituições podem se candidatar para sediar a primeira fase da Maratona de Programação. Instituições interessadas devem preencher o formulário de inscrição.

Até 20/05/2019 

Estarão definidas sedes da Primeira fase da XXIV Maratona de Programação, assim como as regiões geográficas atendidas por cada sede. A Universidade Franciscana (UFN) foi a escolhida para o centro do RS 


JULHO

AGOSTO

Até 22/07/2019 

Prazo para pagamento com maior desconto da taxa de inscrição na Maratona (veja "a página das inscrições para mais detalhes)."

Até 23/08/2019 

O coach deverá completar a inscrição do time, seguindo os passos descritos nas informações sobre a incrição


SETEMBRO

14/09/2019

Primeira Fase da XXIV Maratona de Programação

Até 20/09/2019 

Indicação dos classificados para a Final Brasileira


NOVEMBRO

08/11/2019 E 09/11/2019 

Final Brasileira da XXIV Maratona de Programação em Campina Grande/PB


Regras

Formação dos times

Os times representam instituições de ensino superior, aqui chamadas de escolas. Uma escola é definida pela instituição de ensino superior e a cidade de onde vêm os alunos participantes do time. Assim, por exemplo, a USP poderá ter times de várias escolas: USP-São Paulo, USP-São Carlos, etc. A Unicamp poderá ter times de: Unicamp-Campinas, Unicamp-Limeira, etc. No caso de um curso a distância, a escola poderá ser definida pela instituição de ensino superior e o polo de onde provêm os estudantes ou, no caso do time combinar alunos de vários polos, a instituição de ensino superior e o adjetivo "virtual" para caracterizar que são alunos de EAD. Os times são formados por um coach e três alunos regularmente matriculados desta instituição. Uma mesma instituição pode ter vários times participantes da primeira fase do concurso. Todos os times de uma institutição devem disputar a primeira fase em uma mesma sede. A aceitação de mais de dois times de uma escola está sujeita à capacidade da sede em que a inscrição se realiza e será atendida por ordem de chegada. O concurso se destina a alunos de instituições superiores tipicamente da área de computação (Ciência da Computação, Engenharia de Computação, Sistemas de Informação, etc) e áreas afins (Matemática, Física e Engenharia). Não há impedimentos à participação de alunos de outros cursos. O coach será o representante do time junto à organização do concurso e deverá ser um docente desta escola ou deverá ser indicado (através deste formulário) para a função por um representante desta escola. O mesmo coach poderá representar vários times da escola. Uma mesma escola pode ter vários coaches. Os times da escola deverão ser inscritos na sede da primeira fase definida para sua região geográfica pelo Comitê Diretor do concurso. O coach poderá solicitar uma mudança de sede ao comitê diretor. Todos os times da escola devem competir na mesma sede. Cada time é composto por três alunos e, no máximo, um reserva. Todos devem ser alunos regulares de cursos de graduação ou pós-graduação da escola. A participação do reserva no concurso se dará apenas em caso de algum problema ocorrer com um dos participantes antes da realização do concurso, e a substituição deverá ser comunicada ao Comitê Diretor da XXII Maratona de Programação até, no máximo, a véspera da competição. Depois de iniciado o concurso não há possibilidade de substituições no time. Um time com dois ou menos componentes não poderá se qualificar às fases posteriores da Maratona de Programação. Assim, se algo ocorrer com um dos três componentes de um time sem reserva, este time fica desqualificado. Um time é elegível se todos os seus membros (competidores e reserva) satisfizerem a condição abaixo:

Regras de participação

Cada membro, antes desta competição, pode ter participado de no máximo uma final mundial do ICPC, de no máximo 4 (quatro) regionais sul-americanas do concurso (ou seja, da Maratona de Programação), ele não é elegível.

Período de elegibilidade

Cada competidor deve ter iniciado seus estudos universitários no ano de 2015 ou anos posteriores (a contar do início do primeiro curso universitário do aluno, mesmo que não tenha completado este curso), ou ter nascido em 1996 ou anos posteriores.

Assim, por exemplo, se você iniciou seu primeiro curso superior em 2018, pode participar, mesmo que tenha nascido em 1994. Outro exemplo, se você nasceu em 1996 pode participar, mesmo tendo iniciado sua graduação em 2013.

Apresentamos abaixo novamente as regras, agora em forma de um "programa" para verificar se o competidor é ou não elegível:

[regras de participação]

se

---- o competidor já participou de duas finais mundiais, ele não é elegível!

se

---- o competidor já participou de cinco regionais, ele não é elegível!

[período de elegibilidade]

se o competidor iniciou seus estudos universitários no ano 2014 ou anos anteriores E o competidor nasceu em 1995 ou anos anteriores), ele não é elegível;

caso contrário, o competidor é elegível.

ATENÇÃO: Conforme descrito nas regras

das regionais do ICPC há a possibilidade de, em casos excepcionais (afastamentos por motivo de saúde, serviço militar, etc) ser concedido uma extensão no período de elegibilidade de um competidor. Para isso o coach deverá encaminhar um pedido ao comitê de elegibilidade do ICPC.

Inscrição de times e classificação para a final brasileira

Após a definição das sedes da primeira fase o comitê definirá a região geográfica coberta por cada sede. Dessa forma, cada instituição deverá inscrever seus times na sede designada pelo comitê. A instituição poderá solicitar ao comitê uma mudança de sede. Se não for autorizada, o time pode concorrer na sede desejada disputando apenas a vagas das regras 1 e 3 definidas a seguir.

Regra 1

Cerca de 25% das vagas serão atribuídas aos times com melhor desempenho por todas as sedes. Uma sede se qualifica para vagas deste tipo se tiver times de pelo menos 2 escolas.

Regra2

Cerca de 65% das vagas serão distribuídas entre as sedes de acordo com o número de escolas participantes naquela sede através da fórmula: NúmerodeVagas = arredonda(VagasRegra2 * NumerodeEscolasnaSede / TotaldeEscolas) Uma sede se qualifica para vagas deste tipo se tiver pelo menos 10 times de 5 escolas.

Regra 3

Cerca de 10% das vagas serão atribuídas entre as sedes pelo Comitê Diretor da Maratona de Programação sob forma de incentivo ao crescimento de sedes ainda não contempladas, ou por outros critérios que serão divulgados na ocasião da definição dos times participantes da final. As porcentagens acima indicam o número aproximado de vagas de cada tipo. As vagas não usadas por uma das regras serão distribuídas automaticamente entre as demais, a critério do comitê diretor da Maratona de Programação. Uma mesma escola pode classificar dois times para a final brasileira apenas no caso de ambos os times classificarem-se pela regra 1.

Formação das supersedes

As sedes que não atingirem o limiar (10 times e 5 escolas) para fins de distribuição das vagas pela regra 2 são agrupadas: em uma supersede estadual, que junta as sedes do mesmo estado que não atingiram o limiar. Se ainda não atingirem o mínimo, são agrupadas em uma supersede regional, que junta as supersedes estaduais da mesma região, que ainda não atingiram o limite. Se ainda assim não atingem o mínimo, são agrupadas em uma supersede nacional. Estas supersedes receberão vagas na final brasileira utilizando a fórmula descrita na regra 2 acima.

Correção centralizada

Neste ano vamos utilizar novamente a correção centralizada. Todas as sedes deverão participar, mas deverão manter um esquema alternativo de correção das submissões para o caso de algum problema ocorrer.

Formato do concurso

Em cada uma das fases da Maratona de Programação os times receberão uma prova com diversos problemas que devem ser resolvidos durante 5 horas de competição. A prova da final brasileira será escrita em inglês. A prova da primeira fase poderá ser em português. Os problemas deverão ser resolvidos em alguma das linguagens de programação disponíveis. Na final brasileira os programas deverão ser feitos em C, C++, python, Java ou kotlin . Na primeira fase, o diretor da sede poderá solicitar a inclusão de outras linguagens de programação, que será julgado pela organização. Os times poderão resolver um problema da prova em uma linguagem de programação e um outro problema em outra linguagem, sem qualquer prejuízo. Para a implementação os times terão à sua disposição um computador e todo o material escrito que desejarem. Entretanto, não poderão fazer uso de material armazenado em meio digital ou ter acesso à Internet durante a competição.

Quando um time julgar que tem um programa que resolve um problema, ele pode submetê-lo à correção dos juízes, que compilam e executam este programa para uma bateria de testes desconhecida dos times. Um problema é considerado resolvido se, para todos os testes da bateria, ele devolve o resultado esperado pelos juízes. Para cada submissão o time recebe uma resposta, que pode ser satisfatória (e o problema está resolvido pelo time) ou indica algum erro ocorrido, como: resposta errada, tempo de execução excedido, erro de execução, erro de compilação, etc.

O time vencedor é aquele que resolve a maior quantidade de problemas nas 5 horas de competição. Empates no número de problemas resolvidos são classificados pelo tempo corrigido. Ganha aquele que tem o menor tempo corrigido. O tempo corrigido do time é dado pela soma dos tempos corrigidos somente dos problemas corretamente resolvidos pelo time. O tempo corrigido de um problema é dado pelo número de minutos decorridos desde o início da competição até o momento da primeira submissão correta somado com uma penalidade de 20 minutos por submissão incorreta feita anteriormente neste problema. Em caso de empate, será considerado vencedor o time cuja última submissão correta tenha sido feita mais cedo. Persistindo o empate, passará à penúltima submissão correta e assim por diante. Se persistir o empate a organização fará um sorteio entre os times envolvidos.

A organização da competição é responsável pela decisão de qualquer caso não previsto. Os times inscritos permitem o uso e divulgação de suas imagens e dos programas submetidos pela organização da competição.

Premiação e qualificação para as finais mundiais

A Maratona de Programação da SBC oferece medalhas aos dez primeiros colocados na fase final da competição: ouro para os três primeiros; prata para o quarto, quinto e sexto; e bronze para o sétimo a décimo lugares. Além disso, o time campeão recebe uma cópia do troféu "Maratona de Programação". O time campeão da Maratona de Programação garante vaga nas finais mundiais do concurso de programação da ACM. Caso o Brasil receba outras vagas nas finais da competição, estas serão ocupadas pelos primeiros colocados da final brasileira, respeitado o limite de uma vaga por escola, conforme regra do ICPC. Os times classificados para a final mundial do ICPC serão convidados a participar de um ou mais treinamentos, oportunamente anunciados.

Recursos

Apenas o coach do time poderá recorrer à organização do evento caso julgue que seu time tenha sido prejudicado durante a competição. Qualquer recurso deve ser inicialmente enviado ao diretor da Maratona de Programação dentro de dois dias úteis a contar do dia da realização do concurso. O Comitê Diretor da Maratona de Programação decidirá sobre o caso nos três dias úteis seguintes. O Comitê Diretor da Maratona de Programação encaminhará o recurso e a decisão local ao diretor da super-região Latino-Americana do ICPC. Os resultados da Maratona de Programação serão finais apenas quando todos os recursos tiverem sido julgados. Um recurso deve estar baseado em uma ou mais das circunstâncias a seguir: violação de uma regra, má conduta de um time ou má conduta da administração do concurso com intenção de prejudicar. As decisões dos juízes são finais. Não cabe recurso quanto a julgamento de problemas. Qualquer dúvida a respeito das regras deve ser encaminhada ao Comitê Diretor da Maratona de Programação.


Como Se Inscrever

Um time representa uma instituição de ensino. Cada instituição pode inscrever vários times. A inscrição se dá em três passos que podem ser feitos em qualquer ordem:

Pagamento da taxa de inscrição

Inscrição dos times no site do Concurso

Todos os passos devem ser feitos até 23 de agosto de 2019 para que sua inscrição seja aceita. Para fazer o pagamento da taxa de inscrição você precisa saber apenas quantos times irá inscrever. Portanto, este pode ser feito antes dos dados dos times estarem completos no site do site do ICPC.


Local

Conjunto I - Prédio 1 - Rua dos Andradas Nº: 1614