As inscrições para o Simulado de bixes 2018 estão abertas!

O Simulado é uma prova nos moldes da Maratona de Programação voltada para os bixes, parte do bixeCamp 2018, você pode participar mesmo não tendo ido nas aulas. O evento concluí a primeira parte do curso que é voltada para programação básica, ou seja, conhecimento prévio sobre algoritmos não são necessários para a prova. Apesar disso, a prova busca ser desafiadora e interessante para as pessoas que estão começando a aprender sobre computação.

A prova terá duração de 5 horas e será realizada no codeforces por times de até três pessoas no CEC à partir das 14:00 do dia 20 de Abril de 2018 (sexta-feira).

O time vencedor do Simulado de bixes, se for do BCC, ganha meio ponto na média final de MAC0110. Se alguém do time vencedor declarou ter experiência prévia considerável em programação competitiva, o time participa como “café com leite” e este prêmio passa para o próximo time. Experiência prévia em programação não relacionada a programação competitiva não é considerada aqui. Caso tenha dúvidas se a sua experiência deve ser considerada nesse critério, converse com os veteranos do MaratonIME.

Aqui colocaremos informações e links importantes para o bixeCamp 2018.

Aula 1

  • Programação Competitiva e MaratonIME
  • Input/Output
  • Operações com inteiros

Slides e Lista de Exercícios.

Simulado de bixes

Post oficial.

Segue a descrição do processo seletivo das equipes da USP neste 2018.

Regras

  1. Cada aluno participante deve ser elegível segundo as regras da organização da Maratona de Programação.

  2. No mês de agosto teremos a prova “Seletiva USP 2018”, nos moldes da prova oficial da Maratona de Programação. As 3 melhores equipes representarão a USP. Das demais, a melhor equipe formada apenas por alunos de primeiro ano (sem experiência prévia autodeclarada) também representará a USP.

  3. As duas vagas restantes serão decidas ao longo do primeiro semestre mediante provas individuais. Cada prova contabilizará pontos aos alunos participantes (mais detalhes na próxima seção). Os 6 alunos com maior pontuação acumulada nessas provas que não se classificaram pelo item 2 formarão 2 equipes que representarão a USP. A formação dessas equipes fica a livre escolha dos alunos classificados.

Provas Individuais

Considerações gerais

  • Cada prova constará de 09 problemas.
  • Cada prova oficial começa as 08:00 e termina às 23:59 dos dias indicados acima (aprox. 9 dias).
  • O upsolving termina as 23:59 do prazo indicado acima (aprox. 10 dias).
  • Todas as provas serão no Virtual Judge (https://vjudge.net/)
  • Haverá dois “contests”, um para a prova oficial e outro para o upsolving. Envios na prova oficial fora do prazo serão desconsiderados.

Sobre as provas

  • Durante a prova oficial não deve existir nenhum tipo de colaboração entre os participantes para resolver os problemas.
  • Durante o período de upsolving os participantes podem colaborar trocando ideias ou dicas (altamente recomendado). Não é permitido troca de soluções (código).
  • Em ambos períodos da prova (oficial e upsolving) deve ser proibido procurar pela solução do problema (ideia ou código) na internet.
  • Se o participante sabe que um certo problema requer de alguma técnica, estrutura de dados ou algoritmo pode procurar na internet ou livros sobre aquilo (aprender o conceito), tanto na prova oficial e no upsolving. É proibido copiar e colar o código diretamente. Lembre que a intenção é que cada participante aprenda e implemente coisas novas ao longo das provas, e as saiba aplicar aos problemas, não que só usar como uma “caixa preta”.
  • Caso se encontre algum tipo de cola que infrinja algum dos itens anteriores, o participante será automaticamente desclassificado.

Sistema de pontuação e desempate

  • Cada problema passado durante a prova oficial vale 1 ponto. Cada problema passado durante o upsolving vale 0.5 ponto.
  • Caso exista empate em pontos, se prosseguirá a fazer o desemapate pelos seguintes critérios (nessa ordem).
    1. Quantidade de problemas resolvidos nas provas oficiais.
    2. Menor numero de submissões erradas em problemas resolvidos nas provas oficiais.
    3. Sorteio.

Calendário das Provas da Seletiva Individual USP 2018

Prova Competição oficial Upsolving
1 12/03 - 20/03 21/03 - 30/03
2 31/03 - 09/04 10/04 - 19/04
3 20/04 - 28/04 29/04 - 08/05
4 09/05 - 17/05 18/05 - 27/05
5 15/06 - 23/06 24/06 - 03/07
6 04/07 - 12/07 13/07 - 22/07
7 23/07 - 31/07 01/08 - 09/08

Para participar da Seletiva Individual cadastre-se no formulário.

Uma vez cadastrado, todas as provas estarão no grupo do MaratonIME no vjudge.net

Difusão dos resultados finais: 10/08

Seletiva USP 2018: 18/08

A Seletiva USP 2017 teve a participação de 12 times competindo por 3 vagas na Primeira Fase da Maratona de Programação que ocorreu no sábado 09 de setembro de 2017. Também participaram 3 times que não competeram pelas vagas, por não serem mais elegíveis.

Times classificados

  • ¯\(ツ)
  • O(mg)
  • Send Nodes (vaga para alunos do primeiro ano)

Times classificados pela Seletiva Individual

  • dog hits dog (Nathan Benedetto Proença, Pedro Teotonio de Sousa, Gabriel Fernandes de Oliveira)
  • midibuiado
  • Nem você acredita nisso

Placar, estatísticas, problemas, etc.

Times que competiram por vaga

  • Antikythera: Vitor Santa Rosa Gomes, Pedro Henrique Barbosa de Almeida, Andrew Ijano Lopes
  • ¯\(ツ): Victor Sena Molero, Yan Soares Couto, Arthur Ferreira Nascimento
  • Nem você acredita nisso!: Breno Helfstein Moura, William Hideki Kondo, Jiang Zhi
  • O(mg): Víctor de Sousa Lamarca, Tiago Martins Napoli, Thiago Estrela Montenegro
  • Turistas: André Victor dos Santos Nakazawa, Fábio Henrique Kiyoiti dos Santos Tanaka, Lucas Stefan Abe
  • AAAAAAAA: Vitor Pereira da Silva, Danilo de Sousa Lopes, Nicolas Gobbi
  • Caldeirão do Huck: Victor de Oliveira Colombo, Pedro Teotonio de Sousa, Gabriel Fernandes de Oliveira
  • LUL LUUL: Eduardo Yuki Yada, Pedro Danilo Matsuzaki Marcato, Renan Yamada Shibuya
  • Amortizados: Rodrigo Ribeiro Santos de Carvalho, Marcelo Baiano Pastorino Trylesinski, Lucas Seiki Oshiro
  • Send Nodes: Giovanna Kobus Conrado, Leonardo Silvano Rezende, Victor Hugo Miranda Pinto
  • midibuiado: Pedro Vítor Bortolli Santos, Iuri Grangeiro Carvalho, Enzo Hideki Nakamura
  • Zeta: Nivaldo da Silva Melo Neto, Agenor Gonçalves Neto, Leonardo Carvalho de Souza

Times que não competiram por vaga

  • Broderagem: Gabriel de Russo e Carmo, Germano Hüning Neuenfeld, Luis Gustavo Bitencourt Almeida
  • Medianas Drásticas: Victor Aliende da Matta, Nathan Benedetto Proença, Matheus Oliveira
  • Qwerty: Grover Castro Guzman, Jainor Cárdenas Choque

Já nos fizeram essas perguntas várias vezes, então vamos deixar aqui um compilado sobre o que pensamos sobre como começar a treinar para a maratona.

Ideia geral

  1. Aprender a linguagem, básicos de entrada/saída, e resolver problemas simples.
  2. Aprender tópicos simples, enquanto pratica. Recomendamos os tópicos: Guloso, Buscas em Grafos (BFS, DFS) e Programação Dinâmica simples.
  3. Nesse ponto, achamos mais útil treinar esses tópicos do que aprender novos. Participe de contests individuais e faça problemas que não são apenas aplicações diretas, e que combinam estas estratégias. Peça ajuda para maratonistas mais experientes sempre que travar em algum problema.
  4. Aprenda os outros tópicos a medida que precisar deles em contests.

Aprendendo novos tópicos

  • CodCad — ensina vários tópicos e tem problemas de aplicação direta. Começa do básico, com entrada/saída e laços. (Iniciante, Médio)
  • Lista do bixeCamp — esses são os problemas que passamos no treinamento dos nossos bixos. É separada por semanas, e também começa do básico, mas vai progredindo até chegar em Grafos e Programação Dinâmica. (Iniciante)
  • Nossos vídeos no Youtube — temos vídeos explicando vários tópicos também, com foco na implementação, e com sugestões de problemas nas descrições. Cuidado! Alguns destes tópicos são bem complicados, recomendamos começar por “Busca em Grafos”, “Programação Dinâmica”, e “Union-Find e Kruskal”. (Médio, Avançado)
  • Perguntar para os amiguinhos — :). (Iniciante, Médio, Avançado)

Quando estiver aprendendo um novo tópico:

  • Comece resolvendo vários problemas de aplicação direta, que não requerem saber nada a mais que aquele tópico.
  • Após isso, procure alguma lista de problemas daquele tópico, com problemas que combinam outros tópicos.
  • Enquanto está aprendendo, sempre code do zero a estrutura ou algoritmo. Não copie e cole o código do problema anterior. Isso ajuda a memorizar o código.
  • Não precisa fazer listas intermináveis de problemas. É bom só fazer até se sentir confortável com o tópico.
  • Não se vicie em fazer só listas. Também faça contests. Quando você faz uma lista, pode se predispor a resolver um problema de um jeito específico, e deixar de treinar a habilidade de resolver problemas (fazer observações até modelar o problema e achar uma solução).

Praticando seu conhecimento

Recomendo participar de contests em juízes onlines, principalmente no Codeforces, que tem ótimos problemas. Outros sites com bons contests: Codechef (enunciados esquisitos, que treinam seu entendimento) e CS Academy (enunciados curtos e diretos, não se acostume :P).

Os problemas destes contests são em geral ordenados por dificuldade. Comece pelo mais fácil, e quando acabar, continue a fazer o Upsolving do contest (não precisa fazer até o final, só enquanto se sentir confortável). Nesse ponto, é útil perguntar para pessoas mais experientes como passar aquele problema que está um pouco acima do seu nível, e possivelmente aprender novos tópicos para conseguir fazer isso. Se não tem pessoas mais experientes na sua faculdade, pergunte para nós :). Antes de perguntar, tente resolver o problema sozinho por algum tempo (talvez um dia) e, se não conseguir, peça ajuda. Lembre-se que o problema pode envolver algum tópico que você não conhece. Busque pedir por dicas que possam te ajudar a seguir a direção correta em vez de entregar o problema todo de uma vez.