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.

Estão abertas as inscrições para a tradicional Seletiva USP organizada pelo IME. Ela vai acontecer no dia 12 de agosto. Esta competição serve para determinar alguns times que representarão a USP (Campus Butantã) na Maratona de Programação da SBC no dia 09 de setembro, e ajudar a USP a chegar cada vez mais longe na programação competitiva.

Para participar basta se inscrever.

Informações Sobre a Prova:

  • Data da Seletiva: 12 de agosto
  • Local da Seletiva: IME Bloco B - CEC
  • Início do evento: 10:00 horas
  • Início da prova: 14:00 horas
  • Fim da prova: 19:00 horas

A Maratona de Programação

A Maratona de Programação é um evento da Sociedade Brasileira de Computação (SBC) destinada a alunos de cursos de graduação e início de pós-graduação na área de Computação e afins. Esta competição é baseada na habilidade de se resolver problemas com algoritmos e código sob pressão, com velocidade, de forma correta e eficiente, promovendo a criatividade e o trabalho em equipe. As equipes são compostas por três alunos, que tentam, durante 5 horas, resolver o maior número possível de problemas propostos em menor tempo errando o mínimo possível. Este evento é parte das classificatórias regionais para as finais mundiais do concurso de programação da ACM, o ACM-ICPC (Association for Computing Machinery International Collegiate Programming Contest). Os melhores colocados na final brasileira se classificam para esta final mundial.

A Seletiva

Este ano, a seletiva tem o apoio e patrocínio de:

Serão classificados para a Maratona da SBC 3 times seguindo o seguinte critério: Os dois melhores times se classificam, depois deles, o melhor time ainda não classificado formado somente por alunos do primeiro ano de graduação. Os outros três times se classificam pela seletiva continua.

Para poder se inscrever, seu time deve ser elegível pelos critérios da SBC. Os times são formados por três alunos que deverão ter iniciado seus estudos universitários no ano de 2013 (a contar do início do primeiro curso universitário do aluno) ou posterior ou ter nascido no ano de 1994 ou posterior. Boa sorte!

As inscrições para o Winter Camp 17 estão abertas! Mais informação neste link.

logoWinter

Esta é uma foto da premiação do Simulado de bixes de 2016 (não editada). Perceba a grandeza deste momento de glória imensa. Chegou o seu momento de experienciar tamanha honra! O evento mais aguardado do ano chegou. O Simulado dos Bixes de 2017 será realizado nesta próxima quinta (04/05) das 14h às 19h no CEC, e será feito de seguindo o modelo da Maratona de Programação, ou seja, terá balões! Se inscrevam em times de 3 (ou menos, caso necessário) por este link. Lembrando que não é necessário ter experiência (ou ter participado dos nossos treinos), os problemas podem ser resolvidos com o conhecimento de MAC110. Além disso, o time vencedor ganhará camisetas e 0.5 na média de MAC110*. Se inscrevam!

Depois de se inscrever, sigam as seguintes instruções:
1) Cada integrante deve fazer uma conta no Codeforces.
2) Um dos membros do time cadastre o time (usando os usuários cadastrados no item 1) nesse link.
3) Chegue pelo menos 15 minutos antes para preparar tudo, a prova começa exatamente às 14h.

*: Por enquanto essa feature só é garantida pro BCC, mas a gente promete ir lá encher o saco do seu professor se você ganhar.

premiacao2017

MaratonIME voltou com mais aulas! Esta vez o cara que nasceu com chinelos nos pés, o elucidado Yan Soares Couto te mostra como desconectar uma rede de computadores usando algoritmos de fluxo em grafos. Se quer aprender como fazer isso, e dar trabalho para o admin da sua rede, assista os vídeos no Youtube. A primeira parte é sobre a teoria, e a segunda sobre como implementar o algoritmo.

Tópicos da Aula

  • Fluxo Máximo
  • Teoria por trás do algoritmo Ford-Fulkerson

Exercícios