OBI2011 Caderno de Tarefas

Documentos relacionados
OBI2012 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2007 Caderno de Tarefas

Simulado OBI2018 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2012 Caderno de Tarefas

OBI2017 Caderno de Tarefas

OBI2011 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2016 Caderno de Tarefas

OBI2006 Caderno de Tarefas

OBI2014 Caderno de Tarefas

OBI2013 Caderno de Tarefas

OBI2015 Caderno de Tarefas

MODALIDADE PROGRAMAÇÃO 1ª FASE

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.

OBI2016 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.

OBI2016 Caderno de Tarefas

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

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

OBI2016 Caderno de Tarefas

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

OBI2012 Caderno de Tarefas

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

Exercícios: Vetores e Matrizes

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

OBI2016 Caderno de Tarefas

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

OBI2012 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.

MANUAL DE UTILIZAÇÃO DO AUTO ATENDIMENTO SETOR PÚBLICO DO BANCO DO BRASIL

Estruturas de Repetição

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

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

CONCURSO DE ADMISSÃO 2010/2011 PROVA DE MATEMÁTICA 6º ANO DO ENSINO FUNDAMENTAL CONFERÊNCIA:

OBI2010 Caderno de Tarefas

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

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

OBI2005 Caderno de Tarefas

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

Fundamentos de Informática. Tiago Alves de Oliveira

SISTEMA OPERACIONAL - ios

MANUAL DO SISTEMA TRT-5 PRESTADOR MÉDICO

Exercícios: comandos de repetição

SICLOM Mapa Mensal. 1 Mapa Mensal. Versão: Manual de preenchimento do mapa mensal no SICLOM Gerencial

OBI2012 Caderno de Tarefas

Potenciação e radiciação

CAPÍTULO O Método Simplex Pesquisa Operacional

Importação de Dados Raster no TerraView

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

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

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

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

Lista de Exercícios Critérios de Divisibilidade

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.

OBI2014 Caderno de Tarefas

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

MEDIDAS FÍSICAS FEX 1001

Matemática Discreta - 08

=...= 1,0 = 1,00 = 1,000...

MICROSOFT OFFICE EXCEL 2007

Em cada uma dessas frases, há uma quantidade indicada em forma de fração. Veja:

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

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

ASSISTÊNCIA ESTUDANTIL - DISCENTE SIGAA

OBSERVAÇÕES: EXERCÍCIOS

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

Orientação a Objetos

O Jogo da Velha Dançarina

Portal de Carapicuíba Painel Administrativo

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

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

História das Frações

Tudo vem dos sonhos. Primeiro sonhamos, depois fazemos.

Solução da prova da 2a fase OBMEP 2014 Nível 2. Questão 1. item a)

Lista de Exercícios - Subtração

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

Anterior Sumário Próximo MATRIZES, DETERMINANTES E SISTEMAS

AVALIAÇÃO DA APRENDIZAGEM EM PROCESSO. Matemática. 3ª Série do Ensino Médio Turma 2º bimestre de 2015 Data / / Escola Aluno

38 a OLIMPÍADA BRASILEIRA DE MATEMÁ TICA

INTRODUÇÃO À CALCULADORA HP 12c. OBJETIVO: Este material tem como objetivo estabelecer um primeiro contato com a calculadora financeira HP 12c.

Circuitos Aritméticos

ACD Loteca Chaves e Filtro PRO 1.0 Dicas

Cadastrando uma nova denúncia

12 26, 62, 34, , , 65

FUNÇÕES MATEMÁTICAS NÚMERO : PI() SENO E COSSENO: SEN() E COS()

01. Mario, ao chegar a uma cidade com princípios lógicos, viu na placa de Bem Vindo! o ( ) x Px Bx Vx. Mais adiante, em outra placa, havia a

Calculando seno(x)/x com o interpretador Hall.

Usando o painel do operador

Manual de Uso do Aplicativo

sumário CAPÍTULO 01 CAPÍTULO 02 CAPÍTULO 03 CAPÍTULO 04 CAPÍTULO 05 CAPÍTULO 06 CONHECENDO CORELDRAW X régua, linhas-guia e grade...

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

CURSO TÉCNICO DE ENSINO MÉDIO INTEGRADO / SUBSEQUENTE

Comandos de Desvio 1

Oficina: Jogar para gostar e aprender matemática. Profa. Dra. Adriana M. Corder Molinari dri.molinari@uol.com.br

Transcrição:

OBI2011 Caderno de Tarefas Modalidade Programação Nível 1, Fase 2 14 de maio de 2011 A PROVA TEM DURAÇÃO DE 4 HORAS Promoção: Patrocínio:

Olimpíada Brasileira de Informática OBI2011 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. Verique 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áco 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 diculdade; 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 suxo.c; soluções na linguagem C++ devem ser arquivos com suxo.cc ou.cpp; soluções na linguagem Pascal devem ser arquivos com suxo.pas; soluções na linguagem Java devem ser arquivos com suxo.java e a classe principal deve ter o mesmo nome do arquivo fonte; e soluções na linguagem Python devem ser arquivos com suxo.py. 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 nal 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 especicado 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, BueredReader, Writer e System.out.println em Python: read,readline,readlines,print,write Buered- Procure resolver o problema de maneira eciente. Na correção, eciê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 OBI2011 2 Calculadora Nome do arquivo fonte: calculadora.c, calculadora.cpp, calculadora.pas, calculadora.java, ou calculadora.py Solicitando Boas Contas (SBC) é uma organização de inspeção de calculadoras. Todos os fabricantes procuram ter o selo de qualidade da SBC, que faz com que os clientes comprem o produto sem preocupação com contas erradas. Você está encarregado de testar máquinas que fazem apenas operações de multiplicação e divisão. Além disso, o termo a ser digitado em cada operação (que dividirá ou multiplicará o número atualmente exibido no visor) só pode conter um único dígito. A calculadora exibe o número 1 quando ligada. Depois disso, o usuário pode digitar um número com um único dígito e escolher se esse número deve multiplicar ou dividir o número exibido anteriormente; o resultado da operação escolhida é então exibido na calculadora. Pode-se repetir esse processo indenidamente. Apesar de só podermos entrar com números inteiros de um dígito, o visor da calculadora permite exibir números com múltiplos dígitos e até mesmo números fracionários. Dada uma sequência de operações que foram realizadas nessa calculadora logo depois de ligada, sua tarefa é conferir o resultado exibido. A primeira e única linha da entrada contém um inteiro N. Cada uma das próximas N linhas contém um dígito e um caractere `*` ou `/', que representam uma operação realizada na calculadora. Seu programa deve imprimir uma única linha contendo o resultado que deve ser exibido pela calculadora ao nal das operações. Restrições 1 N 100 000. Os números informados são inteiros entre 1 e 9. O resultado nal da conta é um número inteiro entre 1 e 2 30. Informações sobre a pontuação Em um conjunto de casos de teste que totaliza 20 pontos, N = 3. Em um conjunto de casos de teste que totaliza 50 pontos, o resultado da expressão até a operação i é um inteiro entre 1 e 2 30, para i = 1, 2,.., N.

Olimpíada Brasileira de Informática OBI2011 3 Exemplos 3 2 * 1 * 3 * 6 O usuário deseja calcular o resultado da seguinte expressão: 1 2 1 3. Note que a primeira ocorrência do número 1 vem do fato da calculadora mostrar inicialmente 1 ao invés de 0. 3 2 / 3 / 6 * 1 Neste exemplo, o usuário deseja calcular o resultado da seguinte expressão: ((1/2)/3) 6. 11 9 / 387420489

Olimpíada Brasileira de Informática OBI2011 4 Colorindo Nome do arquivo fonte: colorir.c, colorir.cpp, colorir.pas, colorir.java, ou colorir.py A Sociedade Brasileira das Cores (SBC) é uma editora de livros de colorir. As crianças adoram os livros da SBC porque suas guras, depois de pintadas, cam muito coloridas e bonitas. Isso acontece porque a SBC se preocupa em não deixar grandes regiões contínuas em suas guras, que devem ser pintadas com uma cor só. Até agora, o processo de vericar se uma gura tinha uma região contínua grande era completamente visual, mas a SBC resolveu automatizar esse processo e você foi contratado para programar uma parte desse sistema. Uma gura é representada por uma grade, de dimensão N por M. Cada quadrado dessa grade é representado por uma coordenada (i, j), com 1 i N e 1 j M. Por exemplo, a coordenada (1, 5) representa o quadrado na primeira linha e quinta coluna, enquanto que a coordenada (3, 7) representa o quadrado na terceira linha e sétima coluna. As linhas são contadas de baixo para cima e as colunas da esquerda para a direita. Cada quadrado pode estar vazio ou cheio. Assumimos que uma criança só vai pintar sobre quadrados vazios e se ela pintar um quadrado de uma cor, ela irá pintar os oito vizinhos da mesma cor, desde que eles estejam vazios e que ela não saia da área da gura. Dada a gura e a coordenada onde uma criança vai começar a pintar, sua tarefa é descobrir quantos quadrados ela irá pintar. A primeira linha da entrada contém 5 números inteiros, N, M, X, Y e K. Os números inteiros N e M são respectivamente o número de linhas e colunas da grade, enquanto que (X, Y ) é a coordenada onde a criança vai começar a pintar e K é o número de quadrados cheios na gura. Seguem-se K linhas, cada uma com dois inteiros A e B, que são as coordenadas de um quadrado cheio. Garantimos que o quadrado na posição (X, Y ) está sempre vazio. Seu programa deve imprimir uma linha contendo o número de quadrados pintados pela criança. Restrições 1 N, M 200. 1 K 10 000. 1 X, A N. 1 Y, B M.

Olimpíada Brasileira de Informática OBI2011 5 Exemplos 1 5 1 2 2 1 1 1 4 2 5 5 3 3 7 2 2 2 3 2 4 3 2 3 4 4 2 4 3 18 Neste exemplo de caso de teste, temos uma gura de dimensões 5 5. A criança começa a pintar na posição (3, 3). Na gura abaixo ilustramos este caso. A posição que a criança inicia está marcada com a letra X, e os quadrados que a criança consegue pintar estão destacandos em cinza claro. Note que ela consegue pintar o quadrado (4, 4), pois este quadrado é um dos quadrados que ela consegue pintar após ter pintado o quadrado (3, 3). 5 4 3 2 1 X 1 2 3 4 5

Olimpíada Brasileira de Informática OBI2011 6 10 10 5 5 22 2 2 2 3 2 4 2 5 2 6 2 7 2 8 3 2 3 8 4 2 4 8 5 2 5 8 6 2 6 8 7 2 7 3 7 4 7 5 7 6 7 7 7 8 20 Neste exemplo de caso de teste, temos uma gura de dimensões 10 10. A criança começa a pintar na posição (5, 5). Na gura abaixo ilustramos este caso. A posição que a criança inicia está marcada com a letra X, e os quadrados que a criança consegue pintar estão destacandos em cinza claro. 10 9 8 7 6 5 4 3 2 1 X 1 2 3 4 5 6 7 8 9 10

Olimpíada Brasileira de Informática OBI2011 7 Balé Nome do arquivo fonte: bale.c, bale.cpp, bale.pas, bale.java, ou bale.py Uma academia de balé irá organizar uma Ocina de Balé Intensivo (OBI) na Semana de Balé Contemporâneo (SBC). Nessa academia, existem N bailarinas que praticam regularmente. O dono da academia, por ser experiente, consegue medir o nível de habilidade de cada uma delas por um número inteiro; nessa medição, números maiores correspondem a dançarinas mais habilidosas, e os números obtidos são todos distintos. Além disso, ele possui uma lista das bailarinas em ordem cronológica de ingresso na academia: As bailarinas que aparecem primeiro na lista estão há mais tempo na academia, e as que estão no nal ingressaram mais recentemente. O dono da academia decidiu escolher duas das bailarinas para ajudá-lo na realização do evento: uma ajudará no trabalho braçal, enquanto a outra irá exemplicar os passos de balé. Por seu perfeccionismo, ele deseja que a bailarina que exemplicará os passos de dança seja, dentre as duas meninas do par, a mais habilidosa e a que frequenta a academia há mais tempo. Ele sabe que a Ocina será um sucesso desde que os dois critérios mencionados acima sejam satisfeitos pela dupla de dançarinas escolhidas. Com isso, ele cou curioso para saber quantas duplas de dançarinas podem ajudá-lo na Ocina. A quantidade de dançarinas, contudo, é relativamente grande e ele não possui nem tempo nem paciência para fazer tal cálculo. Como vocês são amigos, ele pediu a sua ajuda para contar quantas duplas são válidas. Você pode ajudá-lo? Por exemplo, digamos que a academia possua 5 dançarinas com níveis de habilidade 1, 5, 2, 4 e 3, onde a primeira, que possui nível 1, está na academia há mais tempo e a última, que possui nível 3, está há menos. Temos, então, 4 possíveis duplas que poderemos usar nesta Ocina, que são (5, 2), (5, 4), (5, 3) e (4, 3). Note que a dupla (1, 3), por exemplo, não pode ser escolhida pelo dono da academia, pois a mais habilidosa dentre as duas é também a mais nova da dupla. A primeira linha contém um número N, que representa a quantidade de dançarinas que estão registradas na academia. A segunda linha da entrada contém N inteiros, onde o primeiro inteiro é o nível da dançarina que está há mais tempo na academia, o segundo inteiro é o nível da próxima dançarina mais antiga na academia (mas mais nova que a dançarina anterior), e assim sucessivamente. A saída consistirá num único número X, que representa o total de duplas de dançarinas válidas para essa Ocina, dadas as regras descritas anteriormente. Restrições 1 N 100 000. Todas as dançarinas possuirão níveis distintos, entre 1 e 100 000. O total de pares válidos, em todos os casos, será 1 000 000. Informações sobre Pontuação Em um conjunto de casos de teste que totalizam 70 pontos, N 300

Olimpíada Brasileira de Informática OBI2011 8 Exemplos 5 1 5 2 4 3 4 9 9 8 7 6 5 4 3 1 2 35

Olimpíada Brasileira de Informática OBI2011 9 Selos Nome do arquivo fonte: selos.c, selos.cpp, selos.pas, selos.java, ou selos.py Euclides é um garoto que gosta muito de colecionar selos. No seu aniversário, seus pais o presentearam com N selos, todos em formato de quadrados com 1 cm de lado. Euclides gostaria de guardar todos os N selos que ganhou colando-os numa página de papel em branco. Ao decidir por guardá-los assim, no entanto, ele logo percebeu que a única forma que lhe agradava de posicionar os selos na página era a forma de um retângulo completamente coberto pelos mesmos, sem sobreposição. Ele percebeu também que, independente do número de selos obtido, colocar todos os selos numa única linha ou todos os selos numa única coluna é uma conguração válida. Como essa maneira usa a página do caderno de um jeito muito ineciente, Euclides gostaria de saber se existe algum modo de dispor os N selos num retângulo que tenha mais de uma linha e mais de uma coluna tal que todas as linhas e colunas sejam completamente ocupadas por selos (isto é, tal que não existam posições sem selos no interior do retângulo). A entrada contém uma única linha com um único inteiro N, o número de selos que Euclides ganhou. A saída deve conter uma linha com um único caracter, que deve ser `S' se for possível organizar os selos em um retângulo com mais que uma linha e mais que uma coluna ou `N' caso não seja possível. Restrições 1 N 10 000 000 000. Informações sobre a pontuação Em um conjunto de casos de teste que totaliza 70 pontos, N 1 000 000.

Olimpíada Brasileira de Informática OBI2011 10 Exemplos 8 S A gura abaixo exemplica duas maneiras de guardar os selos em forma de retângulo. 1 N 11 N