OBI2016 Caderno de Tarefas



Documentos relacionados
OBI2012 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

OBI2007 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2017 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2015 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2006 Caderno de Tarefas

MODALIDADE PROGRAMAÇÃO 1ª FASE

OBI2016 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2013 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2016 Caderno de Tarefas

XXXII Olimpíada Brasileira de Matemática. GABARITO Segunda Fase

Exercícios: Vetores e Matrizes

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

OBI2012 Caderno de Tarefas

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

PUC-Rio Desafio em Matemática 15 de novembro de 2008

Fundamentos de Informática. Tiago Alves de Oliveira

OBI2012 Caderno de Tarefas

21- EXERCÍCIOS FUNÇÕES DO SEGUNDO GRAU

b) 1, 0. d) 2, 0. Página 1 de 10

OBI2011 Caderno de Tarefas

OBI2010 Caderno de Tarefas

Estruturas de Repetição

MATEMÁTICA B UNIVERSIDADE FEDERAL DE MINAS GERAIS. 2 a Etapa SÓ ABRA QUANDO AUTORIZADO. FAÇA LETRA LEGÍVEL. Duração desta prova: TRÊS HORAS.

MC Teste de Mesa e Comandos Repetitivos

TUTORIAL - COMO SUBMETER ARTIGOS

CAPÍTULO O Método Simplex Pesquisa Operacional

OBSERVAÇÕES: EXERCÍCIOS

AVISO DE SERVIÇO DO PRODUTO. Software de programação PLC-5 para RSLogix 5, versão

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Manual do Usuário SISCOLE - Sistema de Cadastro de Organismos e Laboratórios Estrangeiros

MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO

Primeiro Passo. Na sequência, surgirá a tela de Login, onde você poderá realizar uma das seguintes tarefas:

Tecnologias no Ensino de Matemática

Tudo vem dos sonhos. Primeiro sonhamos, depois fazemos.

Projeto Jovem Nota 10 Geometria Analítica Circunferência Lista 1 Professor Marco Costa

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

II MARATONA DE PROGRAMAÇÃO IFSP SÃO CARLOS. Caderno de Tarefas. 25 de outubro de 2012

Primeira Prova de Análise e otimização de Código - DCC888 -

MATEMÁTICA ENSINO FUNDAMENTAL

e-nota G Módulo de Guarda da Nota Fiscal eletrônica

ÁLGEBRA. Aula 5 _ Função Polinomial do 1º Grau Professor Luciano Nóbrega. Maria Auxiliadora

PROVA DE REDAÇÃO. A partir da leitura dos textos 1 e 2, desenvolva o seguinte tema: A GERAÇÃO NEM-NEM E O FUTURO DO PAÍS

1º Ano do Ensino Médio

Fazer cópias. Cópias rápidas Exemplos de trabalhos típicos Ajuste a qualidade das cópias Fazer cópias.

EXERCÍCIOS DE REVISÃO MATEMÁTICA II GEOMETRIA ANALÍTICA PLANA (Ponto, reta e circunferência)

MANUAL DO USUÁRIO PROGRAMA OSCILOS. Osciloscópio digital. Versão 2.3

38 a OLIMPÍADA BRASILEIRA DE MATEMÁ TICA

ACD Loteca Chaves e Filtro PRO 1.0 Dicas

Polos Olímpicos de Treinamento. Aula 6. Curso de Combinatória - Nível 2. Jogos. 1. Simetria. Prof. Bruno Holanda

Comandos de Desvio 1

CONCURSO PÚBLICO PARA PROVIMENTO DE CARGOS DE SERVIDORES TÉCNICO-ADMINISTRATIVOS EM EDUCAÇÃO EDITAL Nº 045/ PRORH DÚVIDAS FREQUENTES

MÚSICA PROVA DE PERCEPÇÃO MUSICAL. 2 a Etapa SÓ ABRA QUANDO AUTORIZADO. UNIVERSIDADE FEDERAL DE MINAS GERAIS COLE AQUI A ETIQUETA

Canguru Matemático sem Fronteiras 2014

FUNDADOR PROF. EDILSON BRASIL SOÁREZ O Colégio que ensina o aluno a estudar. Simulado de Matemática ITA. ALUNO(A): N o TURMA:

CONCURSO DE ADMISSÃO AO COLÉGIO MILITAR DO RECIFE - 96 / 97 MÚLTIPLA ESCOLHA

APOSTILA DE INFORMÁTICA - PAINT

Algoritmo e Pseudo-código

ESCOLA ESTADUAL DR. JOSÉ MARQUES DE OLIVEIRA - ANO 2013 RECUPERAÇÃO ESTUDOS INDENPENDENTES

01 INTRODUÇÃO 02 COLETANDO STATUS DO SISTEMA 03 TOOLBOX 04 ATUALIZANDO O SOFTWARE 05 ATUALIZANDO O MAPA

OBI2014 Caderno de Tarefas

SISTEMA OPERACIONAL - ios

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

SEQUÊNCIA DIDÁTICA PODCAST ÁREA CIÊNCIAS DA NATUREZA I MATEMÁTICA - ENSINO FUNDAMENTAL E ENSINO MÉDIO

1 Cálculo do valor à vista

Diário Oficial Digital. Sistema web para pesquisa de mátérias Manual do usuário

OBI2013 Caderno de Tarefas

UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO

Metodologias de Programação

ESCOLA ESTADUAL DR. JOSÉ MARQUES DE OLIVEIRA PROGRESSÃO PARCIAL 2.º ANO DO ENSINO MÉDIO TRABALHO DOS ESTUDOS ORIENTADOS AO LONGO DO 1.

Lista de Exercícios - Programação I (Pascal/ Python)

6 - PROVAS CESGRANRIO(CONCURSOS BANCO CENTRAL E OUROS)

VPN do TCE para WINDOWS 1. Instalação. 3. Na janela Choose Setup Type, clique no botão VPN Only e então clique em Next.

Capítulo 4. Retas e Planos. 4.1 A reta

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

XXXII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

OBI2010 Caderno de Tarefas

Programação de Computadores I. Linguagem C Função

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

ASSISTÊNCIA ESTUDANTIL - DISCENTE SIGAA

LETRAS JAPONÊS (LICENCIATURA)

Instruções para download e instalação da atualização de Mapa GPS

Os eixo x e y dividem a circunferência em quatro partes congruentes chamadas quadrantes, numeradas de 1 a 4 conforme figura abaixo:

Computação I (MAB120) DCC/UFRJ

PROGRAMAÇÃO LINEAR. Formulação de problemas de programação linear e resolução gráfica

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Transcrição:

SOCIEDADE BRASILEIRA DE COMPUTAÇÃO OLIMPÍADA BRASILEIRA DE INFORMÁTICA OBI2016 Caderno de Tarefas Modalidade Programação Nível 2 Fase 2 27 de agosto de 2016 A PROVA TEM DURAÇÃO DE 5 HORAS Promoção: Apoio: v1.0

Olimpíada Brasileira de Informática OBI2016 1 Instruções LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA Este caderno de tarefas é composto por 10 páginas (não contando a folha de rosto), numeradas de 1 a 10. Verifique se o caderno está completo. A prova deve ser feita individualmente. É proibido consultar a Internet, livros, anotações ou qualquer outro material durante a prova. É permitida a consulta ao help do ambiente de programação se este estiver instalado e disponível no computador em que você estiver realizando a prova.. As tarefas têm o mesmo valor na correção. A correção é automatizada, portanto siga atentamente as exigências da tarefa quanto ao formato da entrada e saída de seu programa. Não implemente nenhum recurso gráfico nas suas soluções (janelas, menus, etc.), nem utilize qualquer rotina para limpar a tela ou posicionar o cursor. As tarefas não estão ordenadas, neste caderno, por ordem de dificuldade; procure resolver primeiro as questões mais fáceis. Preste muita atenção no nome dos arquivos fonte indicados nas tarefas. Soluções na linguagem C devem ser arquivos com sufixo.c; soluções na linguagem C++ devem ser arquivos com sufixo.cc ou.cpp; soluções na linguagem Pascal devem ser arquivos com sufixo.pas; soluções na linguagem Java devem ser arquivos com sufixo.java e a classe principal deve ter o mesmo nome do arquivo fonte; soluções na linguagem Python devem ser arquivos com sufixo.py2 ou.py3, dependendo da versão utilizada; e soluções na linguagem Javascript devem ter arquivos com sufixo.js. Para problemas diferentes você pode escolher trabalhar com linguagens diferentes, mas apenas uma solução, em uma única linguagem, deve ser submetida para cada problema. Ao final da prova, para cada solução que você queira submeter para correção, copie o arquivo fonte para o seu diretório de trabalho ou pen-drive, conforme especificado pelo seu professor. Não utilize arquivos para entrada ou saída. Todos os dados devem ser lidos da entrada padrão (normalmente é o teclado) e escritos na saída padrão (normalmente é a tela). Utilize as funções padrão para entrada e saída de dados: em Pascal: readln, read, writeln, write; em C: scanf, getchar, printf, putchar; em C++: as mesmas de C ou os objetos cout e cin. em Java: qualquer classe ou função padrão, como por exemplo Scanner, BufferedReader, BufferedWriter e System.out.println em Python: read,readline,readlines,input,raw_input (apenas Python2), print,write em Javascript: scanf, printf Procure resolver o problema de maneira eficiente. Na correção, eficiência também será levada em conta. As soluções serão testadas com outras entradas além das apresentadas como exemplo nas tarefas.

Olimpíada Brasileira de Informática OBI2016 2 Pô, que mão Nome do arquivo: pokemon.c, pokemon.cpp, pokemon.pas, pokemon.java, pokemon.js ou pokemon.py Um novo jogo se tornou popular entre jovens de todas as idades recentemente: o Pô, que mão. Trata-se de um jogo onde uma mão captura criaturas raras e depois as força a lutarem umas contra as outras. Uma verdadeira barbárie. Ainda assim, o jogo se tornou bastante popular. As criaturas são chamadas de pô-que-mãos. No jogo, você pode dar doces para as pô-que-mãos, para que elas fiquem mais fortes e evoluam. Como há poucos doces, nem sempre é possível evoluir todas as pô-que-mãos que um jogador possui. Um jogador tem exatamente 3 pô-que-mãos. Cada um deles necessita de uma quantidade de doces para evoluir. Conhecendo-se a quantidade de doces disponíveis, escreva um programa para determinar qual o maior número de pô-que-mãos que podem evoluir. A entrada é composta por quatro linhas, cada uma contendo um inteiro. A primeira linha contém N, o número de doces disponíveis. A segunda linha contém X, o número de doces necessários para a primeira pô-que-mão evoluir. A próxima linha contém Y, o número de doces necessários para a segunda pô-que-mão evoluir. A última linha contém Z, o número de doces necessários para a terceira pô-que-mão evoluir. Seu programa deve produzir uma única linha, contendo um inteiro, o maior número possível de pô-que-mãos que podem evoluir. Restrições 0 N 1000 1 X 1000 1 Y 1000 1 Z 1000 Exemplos 300 220 100 190 2 1000 100 200 300 3

Olimpíada Brasileira de Informática OBI2016 3 Jardim de infância Nome do arquivo: jardim.c, jardim.cpp, jardim.pas, jardim.java, jardim.js ou jardim.py Vívian é uma professora do jardim de infância. Todos os dias, ao final da aula, ela tem que olhar os desenhos que seus alunos fizeram naquele dia e fazer algum comentário. Esta é uma tarefa muito repetitiva, já que as crianças costumam desenhar coisas semelhantes, portanto Vívian decidiu automatizar o processo. Ela fez um programa capaz de processar a imagem e procurar padrões conhecidos para fazer comentários predeterminados. Em particular, ela percebeu que na maioria dos desenhos as crianças incluem um pinheiro. Porém, ela está tendo dificuldades para reconhecê-los e pediu sua ajuda. O programa dela já é capaz de reconhecer uma figura que pode ser um pinheiro e transformá-la em sete pontos P 1, P 2,... P 7. O candidato a pinheiro seria a região interna do polígono P 1 P 2 P 4 P 6 P 7 P 5 P 3, como mostra a figura a seguir de um pinheiro válido. Logo, dados os sete pontos que formam a imagem, você deve decidir se ela é ou não um pinheiro. Ao analisar os desenhos das crianças, você decidiu que as condições para que os pontos formem um pinheiro são as seguintes: O ângulo P 2 P 1 P 3 é agudo (vértice em P 1 ); Os segmentos P 1 P 2 e P 1 P 3 têm o mesmo comprimento; Os pontos P 2, P 3, P 4 e P 5 são colineares; Os pontos médios dos segmentos P 2 P 3 e P 4 P 5 são coincidentes; O segmento P 2 P 3 tem comprimento maior que o segmento P 4 P 5 ; Os segmentos P 4 P 6 e P 5 P 7 são perpendiculares ao segmento P 2 P 3 ; Os segmentos P 4 P 6 e P 5 P 7 têm o mesmo comprimento; Os pontos P 1 e P 6 devem estar separados pela reta que contém o segmento P 2 P 3. Formalmente, o segmento P 1 P 6 deve interceptar a reta que contém o segmento P 2 P 3 em um único ponto. A imagem a seguir mostra os polígonos formados pelos exemplos de entrada.

Olimpíada Brasileira de Informática OBI2016 4 A entrada contém sete linhas. A i-ésima da entrada contém dois inteiros X i e Y i, indicando as coordenadas cartesianas do ponto P i. Seu programa deve produzir uma única linha, contendo uma única letra, "S" se os pontos formam um pinheiro pelas condições descritas e "N", caso contrário. Restrições 2 10 4 X i, Y i 2 10 4. Todos os pontos são diferentes. Informações sobre a pontuação Em um conjunto de casos de teste equivalente a 50 pontos, o segmento P 2 P 3 será paralelo ao eixo X do plano cartesiano (exemplos 1 e 4).

Olimpíada Brasileira de Informática OBI2016 5 Exemplos 2-4 5 3-1 3 3 3 1 3 3 5 1 5 S 2-1 5 45-43 9-11 33-27 21-20 45-36 33 S -1-3 11-23 11 17 11-7 11 1 19-7 19 1 N 2 4 18 22-14 22 6 24-2 20 6 26-2 22 N 4 1-36 -4-12 -36-30 -12-18 -28-39 -25-27 -41 N

Olimpíada Brasileira de Informática OBI2016 6 Quase primo Nome do arquivo: primo.c, primo.cpp, primo.pas, primo.java, primo.js ou primo.py O jovem César está aprendendo sobre números primos: um número X > 1 é primo se for divisível apenas por 1 e por X. A primeira tarefa de casa de César consiste em dizer, para um dado número N, quantos números menores ou iguais a N são primos. Acontece que os números são muito grandes e César tem preguiça. Ele suspeita que seu professor é tão preguiçoso quanto ele, e acha que, seu professor, para testar se um número é primo, vai testar só uma pequena quantidade de divisores primos. Com isso em mente, ele compilou uma lista de K números primos que acha que o professor vai usar. Mesmo assim, César ainda está com preguiça. Dados N e a lista com K números primos, diga quantos números inteiros positivos menores ou iguais a N não são divisíveis por nenhum número primo na lista. A primeira linha da entrada contém dois inteiros, N e K. A linha seguinte contém K primos distintos k i, (1 i K), que são os primos que César acha que o professor irá considerar. Imprima um único inteiro, a quantidade de números inteiros positivos menores ou iguais a N que não são divisíveis por nenhum número na lista. Restrições 1 N 10 9 1 K 40 k i é primo e 2 k i N Informações sobre a pontuação Em um conjunto de testes valendo 20 pontos, N 10 5 e K = 1 Em um conjunto de testes valendo 40 pontos, N 10 5 e K 20 Em um conjunto de testes valendo 80 pontos, N 10 9 e K 20 Exemplos 10 1 2 5 10 2 2 3 3 20 3 2 5 7 7

Olimpíada Brasileira de Informática OBI2016 7 29 3 2 5 7 10

Olimpíada Brasileira de Informática OBI2016 8 Falta uma Nome do arquivo: falta.c, falta.cpp, falta.pas, falta.java, falta.js ou falta.py Carolina tem um jogo de tabuleiro que possui 24 cartas contendo, cada uma, uma permutação dos quatro primeiros números naturais. (Cartas distintas contêm permutações distintas.) Lembre-se de que a quantidade de permutações de quatro números é 4!, que é igual a 24. Só que ela contou e encontrou apenas 23 cartas. Está faltando uma! Dê uma olhada nessa lista embaralhada de 23 cartas. Qual está faltando? 4 1 2 3 1 2 3 4 1 3 4 2 4 3 2 1 2 1 3 4 3 1 2 4 2 1 4 3? 4 3 1 2 1 2 4 3 1 4 3 2 3 2 4 1 4 1 3 2 3 4 1 2 2 3 4 1 1 3 2 4 3 4 2 1 4 2 1 3 1 4 2 3 2 4 3 1 4 2 3 1 3 2 1 4 2 3 1 4 2 4 1 3 Agora suponha que o jogo tenha um baralho de N! cartas, com todas as permutações possíveis dos N primeiros naturais. Neste problema, dado N e uma lista com N! 1 cartas, seu programa deve imprimir a carta que está faltando. A primeira linha da entrada contém um inteiro N. As N! 1 linhas seguintes contêm, cada uma, N naturais. Cada linha representa uma permutação distinta dos N primeiros naturais. Seu programa deve imprimir uma única linha, contendo N naturais representando a permutação que está faltando na entrada. Restrições 2 N 8. Exemplos 3 3 2 1 2 1 3 1 3 2 3 1 2 1 2 3 2 3 1 2 2 1 1 2

Olimpíada Brasileira de Informática OBI2016 9 Ciclovias Nome do arquivo: ciclovias.c, ciclovias.cpp, ciclovias.pas, ciclovias.java, ciclovias.js ou ciclovias.py A cidade de Nlogônia é mundialmente conhecida pelas suas iniciativas de preservação ambiental. Dentre elas, uma das que mais chama atenção é a existência de ciclovias em todas as ruas da cidade. Essa medida teve um sucesso tão grande, que agora a maioria dos moradores usa a bicicleta diariamente. Em Nlogônia, as interseções são numeradas de 1 até N. Cada rua liga duas interseções A e B e possui uma ciclovia entre A e B. Um caminho P de tamanho K é definido como uma sequência de interseções P 1, P 2,..., P K, tal que para todo i, 1 i < K, existe uma ciclovia entre P i e P i+1. Arnaldo e Bernardo estavam passeando de bicileta pelas ruas de Nlognônia quando pensaram em um novo jogo. Nesse jogo, os dois partem de alguma interseção C e procuram o caminho P de maior tamanho que satisfaça a seguinte regra: as subsequências P 1, P 3, P 5,..., P 2x+1 e P 2, P 4, P 6,..., P 2x da sequência P devem ser ambas crescentes. Ganha o jogo aquele que encontrar o maior caminho. Bernardo te ligou pedindo ajuda para se preparar para o jogo. Com o mapa da cidade você deve encontrar o tamanho do maior caminho possível para todas as interseções iniciais possíveis, seguindo as restrições acima. No exemplo abaixo, o maior caminho possível para início na interseção 1 é P = (1, 3, 5, 4, 7) e para início na interseção 5 é P = (5, 3, 6) ou P = (5, 4, 7). A primeira linha contém dois inteiros N e M, representando respectivamente o número de interseções e o número de ruas. As M linhas seguintes contém dois inteiros A e B indicando que existe uma ciclovia entre A a B. Seu programa deve produzir uma única linha, contendo N inteiros R 1, R 2,... R N, onde R i é o tamanho do maior caminho possível se o jogo começar na interseção i. Restrições 1 N 10 5. N(N 1) 0 M. 2 0 M 5 10 5. A B. 1 A, B N. Não existem duas ciclovias iguais.

Olimpíada Brasileira de Informática OBI2016 10 Informações sobre a pontuação Em um conjunto de casos de teste equivalente a 20 pontos, N 7. Em um conjunto de casos de teste equivalente a 40 pontos, N 100. Em um conjunto de casos de teste equivalente a 60 pontos, N 1000. Exemplos 5 5 1 5 1 3 1 2 2 5 4 5 4 4 4 2 2 6 6 1 3 2 3 4 2 3 4 3 5 5 4 7 5 6 4 2 1 7 6 1 2 1 3 3 5 3 6 5 4 4 7 5 6 4 2 3 2 2