Preparatório para a OBI - Fase 1 - Aula 1/3

Preparatório para a OBI - Fase 1 - Aula 1/3

Introdução

Visão geral da seção: Nesta seção, o palestrante introduz a live e fala sobre os tópicos que serão abordados.

Formato e Calendário da Ubi

  • A Ubi é dividida em três fases: iniciação, primeira fase e segunda fase.
  • As inscrições para a Ubi já estão abertas desde 27 de março e vão até alguns dias antes da primeira prova.
  • A primeira fase acontecerá entre 1º e 3 de julho, com duração de duas horas.
  • Os resultados da primeira fase serão divulgados no dia 19 de junho.

Como Estudar para a Ubi

  • É importante focar na primeira fase, que é mais simples do que as outras duas.
  • Após passar na primeira fase, há tempo suficiente para estudar para a segunda fase.
  • O mês de julho pode ser utilizado para estudar.

Primeira Fase

Visão geral da seção: Nesta seção, o palestrante detalha como será a realização da primeira fase da Ubi.

Datas e Inscrições

  • As inscrições para a primeira fase vão até o dia 31 de maio.
  • A prova presencial será realizada na escola do candidato entre os dias 1º e 3 de junho.
  • Haverá uma janela de três dias para fazer a prova, das 7h às 20h.

Resultados

  • O resultado final da primeira fase será divulgado no dia 19 de junho.

Segunda Fase

Visão geral da seção: Nesta seção, o palestrante fala sobre a segunda fase da Ubi.

Datas

  • A segunda fase da modalidade de programação acontecerá no dia 15 de agosto.
  • Haverá apenas um dia para realizar a prova.

Importância

  • A segunda fase é classificatória e não influencia na premiação.
  • A terceira fase é a que vale para ganhar medalha e viagem para semana Olímpica.

Competição Feminina da OBI

Visão geral da seção: Nesta seção, o palestrante fala sobre a competição feminina da Olimpíada Brasileira de Informática (OBI).

Competição Feminina da OBI

  • A competição feminina é uma modalidade exclusiva para meninas no ensino médio e fundamental.
  • As inscrições para a competição feminina estão abertas para as participantes da OBI.
  • Os resultados finais serão divulgados em 16 de outubro, incluindo o quadro de medalhas e os classificados para a semana olímpica.

Preparação para a Terceira Fase

Visão geral da seção: Nesta seção, o palestrante fala sobre como se preparar para a terceira fase da Olimpíada Brasileira de Informática.

Tempo de Estudo

  • Os candidatos têm cinco meses para estudar antes da terceira fase.
  • Com esforço suficiente, é possível ganhar uma medalha na programação nível Júnior ou nível 1. Na programação nível 2, é possível ganhar um bronze ou prata com muito esforço.

Semana Olímpica

Visão geral da seção: Nesta seção, o palestrante fala sobre a semana olímpica que ocorre após a divulgação dos resultados finais.

Participação na Semana Olímpica

  • A semana olímpica é uma oportunidade para os medalhistas se reunirem na Universidade Estadual de Campinas (Unicamp).
  • Os participantes têm a chance de aprender com estudantes da Unicamp e colegas de outras faculdades.
  • A semana olímpica ocorre no início de dezembro.

Curso de Introdução

Visão geral da seção: Nesta seção, o palestrante fala sobre como fazer o primeiro curso para passar na primeira fase da OAB e apresenta opções de estudo.

Opções de estudo

  • Fazer o Primeiro Curso é suficiente para passar na primeira fase.
  • O curso de introdução ensina a linguagem C e técnicas de programação.
  • O site Nike tem materiais para as Olimpíadas de informática e um roteiro de estudos para cada nível.
  • No site do Nike, há comentários sobre provas antigas e indicações de outros sites úteis.

Preparação para a Primeira Fase da OAB

Visão geral da seção: Nesta seção, o palestrante começa a preparação para a primeira fase da OAB com um problema simples.

Problema: Área da Circunferência

  • Bino quer calcular a área de uma circunferência. Faça um programa que leia o raio R e imprima a área com duas casas decimais.
  • A solução em C++ é explicada passo a passo pelo palestrante.

Precisão de Variáveis

Visão Geral da Seção: Nesta seção, o instrutor explica a diferença entre as variáveis Double e Float e por que é importante usar Double quando precisão é necessária.

Diferença entre Double e Float

  • O tipo de variável Double tem mais precisão do que o tipo de variável Float.
  • Sempre use Double quando precisão é necessária para evitar erros na solução.

Cálculo da Área da Circunferência

  • Para calcular a área da circunferência, leia o raio e declare pi como 3.1416.
  • A fórmula para calcular a área da circunferência é pi vezes R ao quadrado.
  • Para imprimir a área com duas casas decimais, use "%.2f" no código.

Biblioteca Beatspdc

  • A biblioteca Beatspdc pode ser usada para incluir todas as outras bibliotecas juntas em um único comando.
  • Usar uma biblioteca como Beatspdc economiza tempo e evita problemas ao declarar várias bibliotecas separadamente.

Aprendizados sobre bibliotecas e precisão

Visão geral da seção: Nesta seção, o palestrante discute a importância de prestar atenção às restrições do problema ao invés de apenas olhar para os exemplos. Ele também fala sobre a inclusão de bibliotecas e como usar a precisão correta.

Bibliotecas

  • É importante lembrar que nem sempre só porque o seu código está dando certo nos exemplos ele está correto em geral.
  • Preste atenção nas restrições do problema, não apenas na entrada.
  • Bibliotecas são conjuntos de funções que você pode usar em seu código.
  • Na prática, é melhor incluir todas as bibliotecas necessárias usando #include<bits/stdc++.h>.

Precisão

  • Use fixed e setprecision para definir a precisão desejada ao imprimir valores.
  • Para imprimir com duas casas decimais, use cout << fixed << setprecision(2).
  • O número dentro de setprecision() define quantas casas decimais serão impressas.

Problema: Drone de entrega

Visão geral da seção: Nesta seção, o palestrante apresenta um problema envolvendo drones de entrega e janelas retangulares. Ele explica as restrições do problema e como determinar se uma caixa pode ser entregue através da janela.

Restrições do problema

  • A loja está desenvolvendo drones para entrega de caixas com as compras dos clientes.
  • Cada caixa tem a forma de um paralelepípedo reto retângulo.
  • O drone entregará uma caixa de cada vez, colocando-a diretamente dentro da casa do cliente através de uma janela.
  • Todas as janelas do cliente têm o formato retangular e estão totalmente abertas.
  • O drone só pode colocar a caixa através da janela quando uma das faces da caixa está paralela à janela.

Determinando se a caixa pode ser entregue

  • Dado as dimensões da janela do cliente e as dimensões da caixa, determine se o drone consegue entregar a caixa pela janela.
  • Nunca vale a pena pegar o maior lado da caixa e colocá-lo de frente para a janela.
  • O drone não pode colocar a caixa meio torta na janela. Ele precisa estar alinhado com uma das faces.

Cálculo das dimensões da caixa

Visão geral da seção: Nesta seção, o palestrante explica como calcular as dimensões da caixa para que ela possa ser instalada em uma janela de forma adequada.

Cálculo das dimensões da caixa

  • Para calcular as dimensões da caixa, é necessário remover a maior dimensão e ver se a altura da janela é maior do que a largura ou vice-versa.
  • Se a altura for maior do que a largura, a caixa deve ser colocada na direção em que sua altura seja maior do que sua largura.
  • Se a largura for maior do que a altura, então a caixa deve ser colocada na direção em que sua largura seja maior do que sua altura.
  • É importante fazer esses testes antes de prosseguir com o cálculo das dimensões da caixa.

Implementação no código

  • O código começa lendo as três dimensões da caixa (a, b e c) e dispensando a maior delas. Em seguida, verifica-se se b é maior do que A e C ou se C é maior do que A e B usando um sif.
  • É importante usar um sif para evitar erros quando todas as três dimensões são iguais.
  • Depois de determinar quais são as duas maiores dimensões restantes (D1 e D2), pode-se prosseguir com o cálculo das outras duas dimensões (altura e largura).

Posicionando uma caixa em uma janela

Visão geral da seção: Nesta seção, o palestrante explica como posicionar uma caixa dentro de uma janela com base nas dimensões da caixa e da janela.

Posicionando a caixa em pé

  • Se a altura da caixa for maior do que a largura, ela deve ser posicionada em pé.
  • A altura da caixa deve ser menor ou igual à altura da janela e a largura deve ser menor ou igual à largura da janela.
  • Use swap(D1,D2) para trocar os valores das dimensões, caso necessário.

Posicionando a caixa de lado

  • Se a altura da caixa for menor ou igual à largura, ela deve ser posicionada de lado.
  • A maior dimensão (D1) deve ser menor ou igual à maior dimensão (altura ou largura) da janela e a segunda maior dimensão (D2) deve ser menor ou igual à segunda maior dimensão (largura ou altura) na janela.

Código em Python para posicionar uma caixa

Visão geral da seção: Nesta seção, o palestrante mostra um exemplo de código em Python para posicionar uma caixa dentro de uma janela com base nas dimensões.

  • O código é simples e lê apenas um inteiro.

Drone e Sequência de Números

Visão Geral da Seção: Nesta seção, o palestrante fala sobre dois problemas de programação: um envolvendo drones e outro envolvendo uma sequência de números.

Problema do Drone

  • O problema consiste em testar todas as possibilidades de como colocar uma caixa em um drone.
  • O código usa vários IFES para testar cada possibilidade.
  • A resposta é "S" se alguma das possibilidades funcionar.
  • Este problema foi da primeira fase da Uber 2017.

Problema da Sequência de Números

  • O problema consiste em calcular a soma de uma sequência de números que são ditos pelo chefe do programador por telefone.
  • Às vezes, o chefe diz um número errado e diz "zero" para apagar o último número dito.
  • Se ele disser "zero" duas vezes seguidas, os dois últimos números devem ser apagados.
  • A entrada é um inteiro n que representa a quantidade total de números ditos pelo chefe. Cada linha subsequente contém o número xi dito pelo chefe.
  • Este problema foi apresentado no evento ICPC 2018.

Problema Zero para Cancelar

Visão Geral da Seção: Nesta seção, o palestrante apresenta um problema chamado "Zero para Cancelar" e explica como resolvê-lo usando vetores.

Usando Vetores para Resolver o Problema

  • Para resolver o problema, é necessário usar um vetor que mantenha uma lista dos números na sequência.
  • O vetor deve ser usado para manter a sequência de números. Quando um número precisa ser adicionado, ele é colocado no final da sequência. Quando um número precisa ser removido, o último número é apagado.
  • A sequência pode ser lida uma vez e os números podem ser adicionados ou removidos conforme necessário.
  • Se o número for diferente de zero, ele deve ser adicionado ao final da sequência. Caso contrário, o último número deve ser removido usando popback().
  • Depois de criar a sequência de números, a soma dos valores na sequência pode ser calculada passando por cada elemento do vetor e somando seus valores.
  • O código em C++ é mais curto do que em Python.

Exemplos

  • No exemplo dado pelo palestrante, a resposta correta seria 0 porque os números 3 e 4 são removidos antes do zero.
  • Em outro exemplo fornecido pelo palestrante, a resposta correta seria 7.

Função em Python para somar lista

Visão geral da seção: Nesta seção, o palestrante discute a criação de uma função simples em Python para somar uma lista.

Criação da função

  • A função deve ser criada com a palavra-chave "def" seguida pelo nome da função e pelos parâmetros necessários.
  • Dentro da função, é possível usar a função "sum()" do Python para somar os valores na lista.
  • É importante lembrar de retornar o resultado da soma no final da função.

Problema OBI 2021 - Primeira Fase P2

Visão geral da seção: Nesta seção, o palestrante discute um problema específico que apareceu na primeira fase da Olimpíada Brasileira de Informática (OBI) em 2021.

Descrição do problema

  • O problema envolve a soma dos dígitos de um número inteiro positivo.
  • O objetivo é criar um programa que receba um número inteiro positivo como entrada e retorne a soma dos seus dígitos.
  • Este problema foi apresentado na primeira fase da OBI em 2021, especificamente na prova P2.

Problema Auto-Similar

Visão geral da seção: Nesta seção, o palestrante discute um problema relacionado à ideia de objetos auto-similares.

Descrição do problema

  • Um objeto é considerado auto-similar quando pode ser dividido em partes menores que são semelhantes ao objeto original.
  • O problema envolve a identificação de objetos auto-similares com base em uma sequência de números naturais que representam as alturas do objeto.
  • A ideia é que a soma dos valores reversos da sequência deve ser igual para o primeiro e último valor, segundo e penúltimo valor, e assim por diante.
  • Este problema foi apresentado na Olimpíada Brasileira de Informática (OBI) em 2021.

Desculpe, mas não há transcrição fornecida para que eu possa criar as notas. Por favor, forneça a transcrição e eu ficarei feliz em ajudá-lo a criar as notas.

Declarando a Resposta

Visão geral da seção: Nesta seção, o palestrante explica como declarar a resposta para o problema.

Declarando a resposta

  • Começa-se lendo toda a sequência e verificando se todos os valores são iguais.
  • Se todos os valores forem iguais, a resposta começa sendo "sim".
  • Em seguida, é necessário verificar se há algum par que não satisfaça essa condição. Para isso, usa-se um loop for.
  • Se houver algum valor diferente, a resposta passa a ser "não".
  • A resposta final é impressa no final do código.

Outra forma de declarar a Resposta

Visão geral da seção: Nesta seção, o palestrante apresenta outra forma de declarar a resposta para o problema.

Declarando a resposta

  • Começa-se verificando se em algum momento há uma altura que não seja igual às outras.
  • Se houver alguma altura diferente, interrompe-se o código e retorna 0.
  • Caso contrário, continua-se até o fim do código e retorna-se 1.

A importância de aprender a linguagem Ser Mais Mais

Seção Resumo: Nesta seção, o palestrante discute a importância de aprender a linguagem Ser Mais Mais em vez de Python para competições de programação.

Por que escolher Ser Mais Mais?

  • O palestrante explica que o NEPS ensina Ser Mais Mais e não Python.
  • Ele mostra um exemplo de código em que o uso do "return 0" no meio do código faria com que ele parasse antes da execução completa. Isso é importante porque em competições, é necessário ter certeza de que todo o código será executado corretamente.
  • O palestrante explica como o uso do "return 0" pode afetar a execução do código e por que isso é importante em competições.

Comparando com Python

  • O palestrante compara um exemplo de código em Python com um exemplo em Ser Mais Mais.
  • Ele explica como as variáveis são declaradas e usadas no exemplo em Ser Mais Mais.
  • Ele destaca novamente a importância da velocidade na execução do código durante as competições.

Aprendendo Ser Mais Mais

  • O palestrante menciona que o curso NEPS ensina Ser Mais Mais e não Python.
  • Ele enfatiza que aprender Ser mais mais é importante para participar das competições e se classificar para as internacionais.
  • Ele menciona que a seletiva para as competições internacionais só aceita Ser Mais Mais e não Python.

Conclusão

  • O palestrante conclui que, embora Python seja uma linguagem útil em muitas situações, é importante aprender Ser Mais Mais para competições de programação.

Aprendendo Python para a Olimpíada Brasileira de Informática

Visão geral da seção: Nesta seção, o palestrante incentiva os espectadores a aprender Python usando cursos online e adverte sobre as dificuldades que os candidatos enfrentam na seleção da Olimpíada Brasileira de Informática.

Aprendendo Python para a Olimpíada Brasileira de Informática

  • É importante aprender Python para participar da Olimpíada Brasileira de Informática.
  • Cursos online como o NEPS e o NIKE podem ajudar no aprendizado.
  • Candidatos que não conseguem aprender a tempo acabam tendo dificuldades na seleção.

Encerrando a primeira Live

Visão geral da seção: Nesta seção, o palestrante encerra sua primeira transmissão ao vivo e fala sobre as próximas transmissões.

Encerrando a primeira Live

  • Esta é a conclusão da primeira transmissão ao vivo.
  • As próximas transmissões serão anunciadas em breve.

Configurando metas de estudo para ganhar medalhas

Visão geral da seção: Nesta seção, o palestrante explica como configurar metas de estudo para ganhar medalhas na plataforma utilizada nas transmissões ao vivo.

Configurando metas de estudo para ganhar medalhas

  • É possível configurar metas de estudo na plataforma das transmissões ao vivo.
  • Configurar essas metas pode ajudá-lo a ganhar medalhas.
  • As próximas transmissões ocorrerão nos próximos sábados no mesmo horário.
  • Haverá aulas mensais de preparação para as outras fases da Olimpíada Brasileira de Informática.

Próximas transmissões e apresentação do palestrante

Visão geral da seção: Nesta seção, o palestrante fala sobre as próximas transmissões e faz uma breve apresentação pessoal.

Próximas transmissões e apresentação do palestrante

  • As próximas transmissões ocorrerão nos dias 20 e 27 de junho ou julho (não especificado).
  • Haverá uma aula especial no dia 3.
  • O palestrante é Atos Lobo, um estudante que participou da Olimpíada Brasileira de Informática três vezes em primeiro lugar.
  • Ele também irá participar da competição internacional na Hungria.

Encerramento

Visão geral da seção: Nesta seção, o palestrante encerra sua primeira transmissão ao vivo e agradece aos espectadores.

Encerramento

  • Esta é a conclusão da primeira transmissão ao vivo.
  • Obrigado por assistir.
Video description

Esse ano vamos fazer todo mundo passar na primeira fase da OBI! As 3 primeiras aulas desse curso preparatório tem objetivo de te preparar para passar na primeira fase da OBI 2023 nos níveis PJ, P1, P2 e PU. Arthur Lobo, primeiro lugar geral da P2 ano passado, será o professor. É necessário ter conhecimento básico de programação para acompanhar as aulas. Caso você queria começar a aprender programação, nós recomendamos os seguintes recursos: Neps Academy https://neps.academy/br Noic https://noic.com.br/materiais-informatica/roteiro-de-estudos/

Preparatório para a OBI - Fase 1 - Aula 1/3 | YouTube Video Summary | Video Highlight