OBI2007 Caderno de Tarefas



Documentos relacionados
OBI2012 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

OBI2017 Caderno de Tarefas

OBI2016 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2006 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2015 Caderno de Tarefas

OBI2013 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

MODALIDADE PROGRAMAÇÃO 1ª FASE

OBI2011 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2010 Caderno de Tarefas

OBI2005 Caderno de Tarefas

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.

Tudo vem dos sonhos. Primeiro sonhamos, depois fazemos.

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

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.

OBI2011 Caderno de Tarefas

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

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.

TUTORIAL - COMO SUBMETER ARTIGOS

OBI2010 Caderno de Tarefas

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

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

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

Fundamentos de Informática. Tiago Alves de Oliveira

38 a OLIMPÍADA BRASILEIRA DE MATEMÁ TICA

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

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

MICROSOFT OFFICE EXCEL 2007

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

Canguru de Matemática Brasil 2016 Nível PE Respostas

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

QUESTÃO 3 ALTERNATIVA E 24 é o maior número que aparece na figura. Indicamos abaixo a sequência de operações e seu resultado

Exercícios: Vetores e Matrizes

OBI2014 Caderno de Tarefas

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

OBI2010 Caderno de Tarefas

7ª série / 8º ano do Ensino Fundamental

XXXII OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 1 6 o ou 7 o ano

Índice. Especificações Técnicas...3 Instalação...3 Impacta 16 e Impacta 94, 140 e

ESTADO DE MINAS GERAIS ADVOCACIA-GERAL DO ESTADO. CONCURSO PÚBLICO Edital n 1/2006 PROCURADOR DO ESTADO NÍVEL I GRAU A. Caderno de Questões

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

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO

O QUE É O PICTURETEL 550

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

Conhecendo Seu Telefone

Objetivo do jogo 40 pontos todos os quadrados de um templo todos os quadrados amarelos todos os quadrados verdes Material do jogo 72 cartas

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

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

LETRAS JAPONÊS (LICENCIATURA)

COMO JOGAR SINUCA. Link:

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

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

Manual Notícias. Note que abriu uma nova tela que permite procurar a imagem desejada em seu computador.

Exercícios: Recursão

Manual para Lançamento de Notas fiscais no SICON

Programação Linear - Parte 4

CAPÍTULO O Método Simplex Pesquisa Operacional

OBSERVAÇÕES: EXERCÍCIOS

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

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

Metodologias de Programação

ACD Loteca Chaves e Filtro PRO 1.0 Dicas

O QUE É O CALC PLANILHAS ELETRÔNICAS O Calc é um programa que trabalha com planilhas.

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

MODELO PADRÃO PARA SUBMISSÃO DE ARTIGO

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

MREditor Editor de Impressos

SÓ ABRA QUANDO AUTORIZADO.

Exercícios de Matemática para Concurso Público. Lógica Matemática

Caro cliente, atendendo a sua solicitação de auxílio no processo de configuração da interface E1, segue um passo-a-passo para ajudar a visualização.

Usando o painel do operador

Apresentação do Microsoft Excel

Manual para apresentação de trabalhos acadêmicos. Resumo das normas da ABNT. Conceição Aparecida de Camargo

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

Maratona de Programação - Dicas Para Iniciantes

Matemática. A probabilidade pedida é p =

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

Especialista em C&T Produção e Inovação em Saúde Pública. Prova Discursiva INSTRUÇÕES

Identificação do Candidato

Lista 4 Introdução à Programação Entregar até 07/05/2012

País(es) : Brasil Banco(s) de Dados : Progress/Oracle

CARTILHA UTILIZAÇÃO DE PEN DRIVES NAS ESTAÇÕES DE TRABALHO DO TJPE NOVAS REGRAS DE UTILIZAÇÃ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

7ª série / 8º ano do Ensino Fundamental

OBI2013 Caderno de Tarefas

Transcrição:

OBI007 Caderno de Tarefas Modalidade Programação Nível, Fase A PROVA TEM DURAÇÃO DE CINCO HORAS LEIA ATENTAMENTE ESTAS INSTRUÇÕES ANTES DE INICIAR A PROVA Este caderno de tarefas é composto por 5 páginas (não contando esta folha de rosto), numeradas de a 5. 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. 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 disquete, 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. 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. Sociedade Brasileira de Computação www.sbc.org.br Fundação Carlos Chagas www.fcc.org.br

Olimpíada Brasileira de Informática OBI007 Modalidade Programação, Nível, Fase Telemarketing Nome do arquivo fonte: tele.c, tele.cpp, ou tele.pas O telemarketing foi patenteado em 98 pelo empresário Nadji Tehrani e consiste em vender produtos através do telefone. Uma das formas de venda utilizadas hoje em dia é obter-se uma lista de possíveis compradores para os produtos vendidos e seus respectivos telefones e utilizar um time de vendedores para ligar para esse conjunto de pessoas. Bo Ber Man é um empresário estrangeiro dono da Mar Ato Na, cujos ideogramas em seu idioma significam Empresa Nacional de Telemarketing. Sua empresa realiza vendas dos produtos mais variados para diversas companhias. Ele possui um time de N vendedores e uma lista de ligações a serem feitas. Para cada ligação sabe-se o tempo T em minutos que ela vai durar. Os vendedores são identificados por números de a N e fazem as ligações da seguinte forma: Inicialmente, todos os vendedores estão inativos. Sempre que um vendedor realizar uma ligação, ele ficará ocupado pelos T minutos descritos na lista para aquela ligação. O tempo entre duas ligações consecutivas do mesmo vendedor é desprezível. Um vendedor não pode fazer mais de uma ligação ao mesmo tempo. Um vendedor que esteja inativo deverá fazer a ligação que estiver no topo da lista. Caso mais de um vendedor esteja inativo no mesmo instante, o vendedor com o menor identificador dentre os vendedores inativos deverá fazer a ligação que estiver no topo da lista. Assim que uma ligação é atribuida a um vendedor, ela é removida da lista. Um vendedor fica inativo sempre que termina uma ligação. Por exemplo, suponha que um time de 4 vendedores deve fazer 6 ligações, cujos tempos sejam 5,, 3, 3, 4, 9. Como inicialmente nenhum vendedor está ocupado, o primeiro vendedor fará a ligação de 5 minutos, o segundo vendedor a ligação de minutos e os vendedores de número 3 e 4 farão ligações de 3 minutos. Como o segundo vendedor terminará a sua ligação antes dos demais, ele fará a quinta ligação, de 4 minutos e, por fim, o terceiro vendedor (cujo tempo é igual ao do quarto vendedor, mas o número é menor) fará a sexta ligaçao, de 9 minutos. Tarefa Escreva um programa que, dados o número de vendedores, o número de ligações e a duração de cada ligação, determine o número de ligações feitas por cada vendedor. A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A primeira linha da entrada contém dois inteiros, N e L indicando o número de vendedores e o número de ligações a serem realizadas ( N.000, L.000.000). As L linhas seguintes contêm um inteiro T cada ( T 30), em que T representa a duração de cada ligação. Seu programa deve imprimir, na saída padrão, N linhas, uma para cada vendedor, contendo dois inteiros I e P representando o número do vendedor e o número de ligações realizadas por este vendedor. Os vendedores devem ser apresentados em ordem crescente de identificador, começando a partir de.

Olimpíada Brasileira de Informática OBI007 Modalidade Programação, Nível, Fase 5 3 3 4 0 5 0 4 6 5 3 3 4 9 3 4 3 9 3 5 3 3 5

Olimpíada Brasileira de Informática OBI007 Modalidade Programação, Nível, Fase 3 Pizza Nome do arquivo fonte: pizza.c, pizza.cpp, ou pizza.pas Rodrigo pediu uma pizza de mussarela de N fatias, uma parte somente com cebola e o resto somente com azeitonas. Entretanto, ao receber a pizza em casa, notou que o motoqueiro que a entregou não foi cuidadoso o suficiente, pois tanto as tiras de cebola quanto as azeitonas estavam espalhadas por toda a pizza. Para piorar, como a pizza era de mussarela, as tiras de cebola e as azeitonas estavam grudadas na pizza. Como gosta mais de cebola do que de azeitona, Rodrigo deseja pegar fatias consecutivas da pizza de tal forma que estas contenham a maior diferença possível entre tiras de cebola e azeitonas. Para isso, ele contou quantas tiras e quantas azeitonas tinham em cada fatia e subtraiu os dois valores, nessa ordem. Assim, sempre que uma fatia contiver mais cebolas que azeitonas, ela recebe um número positivo, e caso contrário, um número negativo. Uma fatia cujo número seja zero contém o mesmo número de tiras de cebolas e azeitonas. Pizza Por exemplo, supondo que as fatias contenham as seguintes diferenças: 5, 3, 3,,, 3, pode-se pegar uma fatia consecutiva com 9 cebolas a mais que azeitonas, utilizando as fatias com as diferenças,, 3, 5 (lembre-se de que estamos tratando de um círculo e, portanto, a fatia com diferença 5 é vizinha da fatia com diferença 3 e vice-versa). Como Rodrigo não entende de programação, ele resolveu contar com seus serviços. OBS: repare que é melhor não escolher nenhuma fatia caso somente seja possível escolher fatias consecutivas com mais azeitonas que cebolas. Tarefa Escreva um programa que, dados as diferenças entre as quantidades de cebolas e azeitonas em cada fatia de pizza, retorne a maior quantidade possível de cebolas que Rodrigo pode comer a mais do que a quantidade de azeitonas utilizando somente fatias consecutivas de pizza. (lembrando que a primeira fatia é adjacente à última e vice-versa). A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A primeira linha da entrada contém um inteiro N que indica o número de fatias de pizza ( N 00.000). A segunda linha contém N inteiros K ( 00 K 00) separados por um espaço em branco com as diferenças entre as quantidades de cebolas e de azeitonas. Seu programa deve imprimir, na saída padrão, uma única linha, contendo a maior quantidade de cebolas que Rodrigo pode comer a mais do que azeitonas. 6 5-3 -3-3 7 - - 4-5 -3-0 9 6 0

Olimpíada Brasileira de Informática OBI007 Modalidade Programação, Nível, Fase 4 Labirinto Nome do arquivo fonte: lab.c, lab.cpp, ou lab.pas Um amigo seu está muito empolgado com um novo joguinho que baixou em seu celular. O jogo consiste em uma espécie de labirinto que pode ser representado por um quadriculado de células quadradas com N linhas e M colunas. Cada célula do labirinto contém uma plataforma que está a uma determinada altura do chão, que pode ser representada por um inteiro a que varia de 0 (a mais baixa) a 9 (a mais alta). Você inicia na célula (, ) (canto superior esquerdo) e o objetivo é chegar na saída do labirinto que fica na célula (N, M) (canto inferior direito). Para sair do labirinto, você deve fazer movimentos entre células adjacentes. O problema é que seu bonequinho não consegue pular muito alto, então se a célula destino estiver duas ou mais unidades acima da sua altura atual, você não consegue movê-lo. Mais especificamente, a cada turno você pode mover para uma das 4 células adjacentes (cima, baixo, direita, esquerda) caso a altura da célula destino seja menor ou igual à altura da sua célula atual mais uma unidade. Ou seja, se a altura da sua célula for A, você só pode mover a uma célula adjacente caso a altura dela seja menor ou igual a A +. Para complicar um pouco mais o jogo, a cada turno, após o jogador realizar sua ação, cada célula aumenta em uma unidade sua altura, até o valor máximo de 9. Caso a altura de uma determinada célula seja 9, ela passa a ser 0. Note que, em um dado turno, o jogador não é obrigado a se mover, ele pode simplesmente esperar as plataformas subirem ou descerem. Além disso, repare que nem todas as células têm 4 vizinhos, uma vez que não é permitido ao jogador se mover para fora dos limites do labirinto. Você, como bom programador que é, resolve escrever um programa que calcule a menor quantidade de turnos possível para chegar à saída de um dado labirinto. Tarefa Escreva um programa que, dado um labirinto, retorne a menor quantidade de turnos necessária para chegar à saída, de acordo com as restrições dadas. A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A primeira linha da entrada contém dois inteiros N e M ( N, M 50) separados por um espaço em branco, que representam, respectivamente, a quantidade de linhas e colunas do labirinto. As N linhas seguintes contêm, cada uma, M inteiros que representam a altura inicial (no turno 0) da respectiva plataforma. As alturas estão sempre entre 0 e 9 (inclusive). Seu programa deve imprimir, na saída padrão, uma única linha, contendo a menor quantidade de turnos possível para sair do labirinto.

Olimpíada Brasileira de Informática OBI007 Modalidade Programação, Nível, Fase 5 4 3 5 3 3 3 4 5 6 7 8 9 3 5 3 3 3 3 0