A instituição de ensino superior e a cidade de onde vêm os alunos participantes definem uma escola. Uma instituição pode, portanto, ter diversas escolas - por exemplo a instituição USP tem as escolas USP-São Paulo, USP-São Carlos, etc. A instituição também pode optar por inscrever alunos de diferentes cidades em um mesmo time e, neste caso, ela é considerada como uma escola para fins de alocação das vagas na Final Nacional. 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" caracterizando que são alunos de EAD.
Os times de uma escola devem ser inscritos em uma mesma sede, definida para sua região geográfica pelo Comitê Diretor da Maratona de Programação. 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 técnico é o representante do time junto à organização da competição e deve ser um docente da escola. Alternativamente, um docente da escola pode indicar um técnico não docente enviando este formulário preenchido ao Comitê Diretor da Maratona de Programação. Uma mesma pessoa pode ser registrada como técnico de mais de um time e uma mesma escola pode ter vários técnicos. O técnico é responsável pela inscrição dos times no evento. A participação do coach durante a competição não é obrigatória. O coach pode indicar, se assim desejar, um dos competidores para ser o representante da equipe.
O time é composto pelo técnico e três alunos competidores. Opcionalmente, pode ter também um reserva. Competidores e reservas devem ser alunos regulares de cursos de graduação ou pós-graduação. Veja o item "Substituições" sobre a participação do reserva. Um time que compareça a uma competição com menos de três competidores não pode se qualificar para fases posteriores.
Um time é elegível se todos os competidores (e reserva) satisfizerem as regras do ICPC para as regionais:
Exceção: A participação na regional de 2020 não é contada para o máximo de 5 participações em regionais, e a participação na Final Mundial de Moscou não conta para o máximo de duas participações em mundiais.
ATENÇÃO: Há a possibilidade de, em casos excepcionais (afastamentos por motivo de saúde, serviço militar, primeira graduação em área não relacionada, etc.), ser concedida uma extensão no período de elegibilidade de um competidor. Para isso o técnico deverá encaminhar um pedido ao comitê de elegibilidade do ICPC (detalhes aqui). Caso seu pedido seja atendido, envie uma cópia da mensagem do Comitê de Elegibilidade do ICPC ao Comitê Diretor da Maratona de Programação.
As duas fase da Maratona SBC de Programamção são presenciais. São provas de 5 horas, em que os times recebem diversos problemas computacionais. Vence a equipe que resolve a maior quantidade de problemas e, se houver empates, com o menor tempo corrigido.
O tempo corrigido é calculado pela soma dos tempos em que os problemas foram enviados corretamente, somado com uma penalidade de 20 minutos para cada submissão incorreta feita anteriormente para aquele problema. Se o empate persistir, considera-se vencedor o time cuja última submissão correta tenha sido feita mais cedo. Se ainda persistir o empate, segue-se à penúltima submissão correta, e assim por diante. Caso ainda haja empate, o Comitê Diretor da Maratona de Programação fará um sorteio entre os times envolvidos.
A primeira fase é feita em português e a final brasileira sempre em inglês. Os problemas podem ser resolvidos em qualquer linguagem de programação disponível (C, C++, Python, Java ou Kotlin) usando as bibliotecas disponíveis na instalação. Os times têm à sua disposição um computador e o material escrito que desejarem. Os times não podem fazer uso de material digital ou ter acesso à Internet durante a competição. Não podem portar aparelhos eletrônicos como celulares, smart watches, fones de ouvido, etc.
Na final Nacional serão reconhecidos os medalhistas de ouro (primeiro a quarto), prata (quinto a oitavo) e bronze (nono a décimo segundo). Serão reconhecidos também os campeões das 5 regiões do país, e o campeão da Maratona recebe o troféu "Maratona de Programação". Os times mais bem colocados classificam-se para as finais latino-americanas da competição.
[regra 0] Um time só qualifica caso tenha resolvido pelo menos 3 problemas na prova da 1ª Fase. O campeão de uma sede pode qualificar tendo resolvido 2 problemas.
[regra 1] 15 vagas serão atribuídas aos times com melhor desempenho por todas as sedes. Uma escola pode classificar, no máximo, dois times.
[regra 2] cerca de 40 vagas serão distribuídas entre as sedes com pelo menos 10 times e pelo menos 5 escolas. No caso de supersede, cada sede pode classificar apenas um time por esta regra. A quantidade é definida pela fórmula:
Vagas=⌈VagasRegra2 × NumeroDeEscolasNaSede / TotalDeEscolas⌉.
Cada escola classifica no máximo um time por esta regra, desde que não tenha classificado times pela regra 1.
[regra 3] cerca de 4 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 Nacional.
[regra 4] 6 vagas para equipes com participação feminina: 3 vagas para os times com 3 mulheres melhor colocados; 2 vagas para os times mais bem colocados com pelo menos 2 mulheres; 1 vaga para o time melhor colocado com participação feminina. Vagas com participação feminina não contam para o limite de times por instituição.
Os números 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.
Os melhores times da Final Brasileira classificam-se para as Finais Latino-Americanas da competição.
Apenas o técnico do time pode 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 da competição. O Comitê Diretor da Maratona de Programação decidirá sobre o caso nos três dias úteis seguintes e 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. As decisões dos juízes são finais. Não cabe recurso quanto a julgamento de problemas.
Um recurso deve estar baseado em pelo menos uma das circunstâncias a seguir: