OBI2016 Caderno de Tarefas

Documentos relacionados
OBI2016 Caderno de Tarefas

Olimpíada Brasileira de Informática OBI Clube dos Cinco

Simulado OBI2018 Caderno de Tarefas

OBI2017 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2015 Caderno de Tarefas

OBI2016 Caderno de Tarefas

MODALIDADE PROGRAMAÇÃO 1ª FASE

OBI2012 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2007 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2010 Caderno de Tarefas

Caderno de Problemas. 09 de Abril de 2011 A PROVA TEM DURAÇÃO DE 3 HORAS

ENSINO MEDIO REGULAMENTO

OBI2013 Caderno de Tarefas

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

OBI2012 Caderno de Tarefas

OBI2010 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2009 Caderno de Tarefas

OBI2013 Caderno de Tarefas

OPI Modalidade Programação. Fase 1

ENSINO SUPERIOR REGULAMENTO

OBI2012 Caderno de Tarefas

Maratona de Programação da SBC 2017

OBI2010 Caderno de Tarefas

Aula 3 PROFESSOR TUTA

OBI2005 Caderno de Tarefas

OBI2008 Caderno de Tarefas

Caderno de Exercícios Aula 2 (Variáveis, Tipos e Comandos Básicos)

OBI2017 Caderno de Tarefas

Caderno de Problemas

CADERNO DE QUESTÕES. A competição terá uma duração de 4 horas (13hs às 17hs) e é composta de uma série de problemas listados neste caderno.

Seleção de Problemas:

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

OBI2016 Caderno de Tarefas

OBI2014 Caderno de Tarefas

Maratona de Programação da SBC 2013

Maratona de Programação da SBC 2015

OPI 2012 Modalidade Iniciação

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Sexta Aula Prática - 28 de abril de 2011

Warmup para a 5 a Seletiva da UFPR 8 de Agosto de 2014

Linguagem C. André Tavares da Silva.

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

Patrícia de Siqueira Ramos. UNIFAL-MG, campus Varginha. 21 de Março de 2018

Olimpíada Brasileira de Informática OBI2008 Programação Nível Júnior Fase 2 1. Auto Estrada. Nome do arquivo fonte: auto.c, auto.cpp ou auto.

II TORNEIO DE PROGRAMAÇÃO

OBI2006 Caderno de Tarefas

PROBLEMA A TROCA DE CARTAS

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Aula 3:Introdução à Linguagem C

Elementos básicos das linguagens de programação

Working 03 : Conceitos Básicos II

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Aula 15 - Estruturas de Repetição (p3)

Lista de Exercícios 4

OBI2013 Caderno de Soluções

4ª Lista de Exercícios de Programação I

Fundamentos de Programação

Linguagem de Programação C

Exercícios: Vetores e Matrizes

Ferramenta automática de correção de códigos em C Elgio Schlemer Setembro de 2017

Realização: Apoio: Patrocínio:

Aula 4 Introdução ao C

Aula 1 Conceitos Básicos

1ª LISTA DE EXERCÍCIOS

Warmup Inconfidente 1 a Seletiva Interna 2012/1

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Quarta Aula Prática - 17 de abril de 2013

4ª Lista de Exercícios de Programação I

OPI 2011 Modalidade Iniciação

Algoritmos e Programação

Universidade Veiga de Almeida Algoritmos e Linguagem I

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

CETEC Centro Paula Souza

CCO 016 / COM 110 Fundamentos de Programação

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

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Lista de Revisão Prova 1

Patrícia de Siqueira Ramos. 11 de Março de 2019

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Problema A. Volta. Entrada

Descrição da Linguagem Pascal Jr.

Sub-algoritmos (ou Funções)

Olimpíada Brasileira de Informática OBI Nome do arquivo fonte: tacografo.c, tacografo.cpp, ou tacografo.pas

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Introdução à Programação. Vanessa Braganholo

INTRODUÇÃO A ALGORITMOS

Linguagem C Entrada/Saída (console)

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Transcrição:

OLIMPÍADA BRASILEIRA DE INFORMÁTICA SOCIEDADE BRASILEIRA DE COMPUTAÇÃO OBI26 Caderno de Tarefas Modalidade Programação Nível Fase 3 de junho de 26 A PROVA TEM DURAÇÃO DE 4 HORAS Promoção: Apoio: v.

Olimpíada Brasileira de Informática OBI26 Instruções LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA Este caderno de tarefas é composto por 6 páginas (não contando a folha de rosto), numeradas de a 6. 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 disponível. 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 Python2 devem ser arquivos com sufixo.py2 ; soluções na linguagem Python3 devem ser arquivos com sufixo.py3 ; 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 Python2 ou Python3: read,readline,readlines,input,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 OBI26 2 Jogo de par ou ímpar Nome do arquivo: jogo.c, jogo.cpp, jogo.pas, jogo.java, jogo.js, jogo.py2 ou jogo.py3 Dois amigos, Alice e Bob, estão jogando um jogo muito simples, em que um deles grita ou par ou ímpar e o outro imediatamente responde ao contrário, respectivamente ímpar ou par. Em seguida, ambos exibem ao mesmo tempo uma mão cada um, em que alguns dedos estão estendidos e outros dobrados. Então eles contam o número total de dedos estendidos. Se a soma for par, quem gritou par ganha. Se a soma for ímpar, quem gritou ímpar ganha. Por exemplo, suponhamos que a Alice gritou par e o Bob respondeu ímpar. Em seguida, Alice não deixou nenhum dos seus dedos estendidos, ao passo que Bob deixou três dedos estendidos. A soma então é três, que é ímpar, portanto Bob ganhou. Seu programa deve determinar quem ganhou, tendo a informação de quem gritou par e o número de dedos estendidos de cada um. A entrada contém três linhas, cada uma com um número inteiro, P, D e D 2, nesta ordem. Se P = então Alice gritou par, ao passo que se P = então Bob gritou par. Os números D e D 2 indicam, respectivamente, o número de dedos estendidos da Alice e do Bob. Seu programa deverá imprimir uma única linha, contendo um único número inteiro, que deve ser se Alice foi a ganhadora, ou se Bob foi o ganhador. P = ou P = D 5 D 2 5 3 3 5

Olimpíada Brasileira de Informática OBI26 3 Lâmpadas Nome do arquivo: lampadas.c, lampadas.cpp, lampadas.pas, lampadas.java, lampadas.js, lampadas.py2 ou lampadas.py3 Você está de volta em seu hotel na Tailândia depois de um dia de mergulhos. O seu quarto tem duas lâmpadas. Vamos chamá-las de A e B. No hotel há dois interruptores, que chamaremos de I e I 2. Ao apertar I, a lâmpada A troca de estado, ou seja, acende se estiver apagada e apaga se estiver acesa. Se apertar I 2, ambas as lâmpadas A e B trocam de estado. As lâmpadas inicialmente estão ambas apagadas. Seu amigo resolveu bolar um desafio para você. Ele irá apertar os interruptores em uma certa sequência, e gostaria que você respondesse o estado final das lâmpadas A e B. A primeira linha contém um número N que representa quantas vezes seu amigo irá apertar algum interruptor. Na linha seguinte seguirão N números, que pode ser, se o interruptor I foi apertado, ou 2, se o interruptor I 2 foi apertado. Seu programa deve imprimir dois valores, em linhas separadas. Na primeira linha, imprima se a lâmpada A estiver acesa no final das operações e caso contrário. Na segunda linha, imprima se a lâmpada B estiver acesa no final das operações e caso contrário. N 5 Informações sobre a pontuação Em um conjunto de casos de teste equivalente a 2 pontos, N = 3. 3 2 2 4 2 2 2

Olimpíada Brasileira de Informática OBI26 4 Tacos de bilhar Nome do arquivo: tacos.c, tacos.cpp, tacos.pas, tacos.java, tacos.js, tacos.py2 ou tacos.py3 Jogos de bilhar, em que tacos são usados para arremessar uma bola contra outras em uma mesa, têm muitas variantes, como sinunca, mata-mata, bilhar francês e outras. São muito antigos, havendo relatos sobre jogos similares desde 34. O Sr. Jorge é um renomado artesão que fabrica tacos de bilhar sob encomenda. Jogadores de todo o mundo procuram o Sr. Jorge, para confeccionar tacos nos mais diversos comprimentos, pois seus tacos são perfeitos, bem balanceados e muito bonitos. Cada vez que um cliente pede um taco de um dado comprimento, o Sr. Jorge primeiro verifica se ele tem um taco com esse comprimento no estoque. Se tem, ele envia o taco para o cliente. Se não tem, ele faz duas cópias do taco, envia uma para o cliente e guarda a outra no estoque. Assim, ele nunca tem no estoque mais do que um taco com um determinado comprimento. O estoque do Sr. Jorge está muito grande, e ele tem perdido muito tempo procurando por tacos. Ele pensa em usar um sistema computadorizado para manter o seu estoque de tacos, e precisa de sua ajuda. Dadas as consultas ao estoque calcule o número total de tacos fabricados, supondo que inicialmente o estoque esteja vazio.. A primeira linha da entrada contém um inteiro C que indica o número de consultas ao estoque. A segunda linha contém C números inteiros, indicando as consultas ao estoque. Cada valor de consulta indica o comprimento de um taco desejado. As consultas são dadas na entrada na ordem em que o Sr. Jorge as executa. Assuma que o estoque está vazio inicialmente. Seu programa deverá imprimir um único número, o número de tacos fabricados. C 5 comprimento dos tacos 6 Informações sobre a pontuação Em um conjunto de casos de teste equivalente a 4 pontos, C. 4 8 8 5 6 2

Olimpíada Brasileira de Informática OBI26 5 Clube dos Cinco Nome do arquivo: clube.c, clube.cpp, clube.pas, clube.java, clube.js, clube.py2 ou clube.py3 No Clube dos Cinco são oferecidos três esportes aos associados: tiro com arco, badminton e canoagem. Cada associado pode participar de no máximo dois esportes, mas a administração do clube suspeita que algumas pessoas estejam ultrapassando esse limite. A fim de descobrir a verdade, perguntaram aos treinadores quantas pessoas estavam frequentando suas aulas, resultando nos seguintes dados: O número A de pessoas que praticam tiro com arco; O número B de pessoas que praticam badminton; O número C de pessoas que praticam canoagem. Além disso, perguntaram aos membros quais esportes eles praticam. Obviamente, os associados que praticam três esportes mentiram, mas considere que outros falaram a verdade. Os dados dos associados foram resumidos nas seguintes informações: O número D de pessoas que praticam tiro com arco e badminton; O número E de pessoas que praticam tiro com arco e canoagem; O número F de pessoas que praticam badminton e canoagem; O número G de pessoas que não praticam nenhum esporte. Você ficou encarregado da a tarefa de descobrir se a suspeita é verdadeira. Dados o número N de associados do clube e os números A, B, C, D, E, F e G descritos acima, descubra se existe alguma pessoa que faz três esportes. A primeira linha contém um inteiros N, representando o número de associados. A segunda linha contém sete inteiros A, B, C, D, E, F e G como descritos no enunciado. Seu programa deve produzir uma única linha, contendo uma única letra, "S" se algum associado participa de três esportes e "N", caso contrário. N 4. A, B, C, D, E, F, G N. Informações sobre a pontuação Em um conjunto de casos de teste equivalente a 5 pontos, D =, E = e F =.

Olimpíada Brasileira de Informática OBI26 6 7 4 4 4 2 S 8 4 4 4 2 N 4 4 4 N 7 4 4 4 S 4 4 4 S