Bem vinda!

Fico feliz pelo seu interesse em programação competitiva! Abaixo você encontra algumas informações sobre esse universo.

Informações básicas

As maratonas de programação são competições similares às olimpíadas científicas: dado uma prova e um tempo determinado, os competidores lutam para fazer o maior número de questões possíveis. Mas, ao contrário das olimpíadas, as maratonas são um pouquinho mais práticas: a dificuldade está em, além de solucionar os problemas, programar as soluções corretamente!

Abaixo há algumas informações gerais sobre as competições:

Quanto tempo dura a competição?

Depende! Mas a maioria dura de três a cinco horas.

Quais matérias caem?

As provas são compostas por problemas de lógica e algoritmos.

Onde ocorre a prova?

A competição mais famosa possui 4 fases: regional, nacional, latino-americana e mundial. Cada ano a prova ocorre em um local diferente!

Porque participar?

É uma maneira divertida de testar seu raciocínio lógico e se desafiar. Além de poder viajar e conhecer pessoas novas :)

As competições nos fazem aprofundar em temas de matemática e computação, mas de uma forma divertida e com oportunidades incríveis de viajar e conhecer novas pessoas. A foto abaixo mostra eu e algumas amigas que eu fiz durante essa jornada, em uma maratona feminina em campinas.

Talvez, depois de ler essas informações, você esteja pensando que é necessário muito conhecimento técnico para começar a competir... mas eu vou te mostrar que não! Todas nós começamos de algum lugar, e existem problemas para todos os níveis de conhecimento. Nas próximas seções vou te apresentar um probleminha simples que você com certeza conseguiria resolver.

Problema da melancia

O problema da melancia é um problema iniciante clássico, que funciona da seguinte maneira:

Problema:

Pense que você está em um dia ensolarado e deseja dividir uma melancia com uma amiga para se refrescar. Entretanto, vocês não querem ser egoístas, por isso precisam dividir a melancia exatamente no meio, para que cada uma coma a mesma quantidade. Além disso, por algum motivo vocês querem partir a melancia em pedaços com tamanhos inteiros, ou seja, não é possível que cada uma fique com um pedaço de 10.5 cm de tamanho, por exemplo, uma vez que isso é um número fracionário.

Tarefa:

Sua tarefa é, dado um número "n" que representa o tamanho da melancia, decidir se você consegue dividi-la em dois pedaços que respeitem as condições dadas.

A maior parte das questões de programação competitiva tem a estrutura acima. Primeiro, há uma contextualização, uma "historinha" que envolve o problema que você vai resolver. Depois, eles te dão sua tarefa de fato. Nesse caso, a questão te dará vários tamanhos de melancia, e a gente precisa decidir se conseguimos dividir a melancia dada respeitando as condições do problema.

Se você pensar um pouquinho, vai perceber que se o problema te der uma melancia de tamanho ímpar, é impossível partir em dois pedaços iguais e inteiros. Mas, se o problema te der uma melancia de tamanho par maior ou igual a dois, nós sempre conseguimos dividir respeitando as condições dadas.

Agora que nós sabemos como resolver o problema, nós precisamos escrever um programa que execute nossa solução! E isso é bem simples: o programa vai receber um tamanho de melancia "n" e vai retornar se esse tamanho respeita as propriedades que a gente quer, ou não. Nosso código ficaria mais ou menos assim:

Solução:

Se n>=2 e n for par: retorne "consigo partir a melancia".

Caso contrário retorne "não consigo partir a melancia"

Como treinar?

Se você se interessou pelo tema e gostaria de começar a praticar, vou te dar algumas dicas. No final vou deixar alguns links de sites úteis nesse início.

1- Escollha uma lingugagem

Para começar a treinar, é preciso primeiro escolher uma linguagem de programação. As mais comuns nas competições são C, C++, Java e Python. Se você ja sabe alguma dessas, ótimo! Se não, eu te recomendo escolher uma para aprender. A que eu mais gosto de usar, e a que eu te recomendaria, é C++.

2- Treine problemas clássicos

Após ter aprendido o básico de uma lingugagem de programação, você já está apta a treinar alguns probleminhas comuns. Existem diversos temas básicos para começar que estarão disponíveis nos links no final.

3- Simule provas antigas

Por fim, para treinar velocidade e se acostumar com o estilo de prova, nada melhor do que simular provas antigas.

Links úteis:

Se você quer aprender a programar do zero:

Neps Academy

Se você quer aprender temas novos e fazer problemas clássicos:

Beecrowd

Se você quer simular provas antigas:

Codeforces

Competições

Existem muitas competições de programação, a maioria focada em um público universitário. Mas duas competições muito famosas que podem ser realizadas por estudantes do ensino médio são a OBI (Olimpíada Brasileira de Informática) e a MFP (Maratona Feminina de Programação).

Contato

Gostou desse universo? Tem alguma dúvida? Pode me chamar no email!

lailamvl@gmail.com