Você está na página 1de 5

OBI2012 Caderno de Tarefas

Modalidade Programao Nvel Jnior, Fase 2


26 de maio de 2012 A PROVA TEM DURAO DE 3 HORAS

Promoo:

Patrocnio:

v1.0

Olimpada Brasileira de Informtica OBI2012

Instrues
LEIA ATENTAMENTE ESTAS INSTRUES ANTES DE INICIAR A PROVA
Este caderno de tarefas composto por 4 pginas (no contando a folha de rosto), numeradas de 1 a 4. Verique se o caderno est completo. A prova deve ser feita individualmente. proibido consultar a Internet, livros, anotaes ou qualquer outro material durante a prova. permitida a consulta ao help do ambiente de programao se este estiver disponvel. As tarefas tm o mesmo valor na correo. A correo automatizada, portanto siga atentamente as exigncias da tarefa quanto ao formato da entrada e sada de seu programa. No implemente nenhum recurso grco nas suas solues (janelas, menus, etc.), nem utilize qualquer rotina para limpar a tela ou posicionar o cursor. As tarefas no esto ordenadas, neste caderno, por ordem de diculdade; procure resolver primeiro as questes mais fceis. Preste muita ateno no nome dos arquivos fonte indicados nas tarefas. Solues na linguagem C devem ser arquivos com suxo .c; solues na linguagem C++ devem ser arquivos com suxo .cc ou .cpp; solues na linguagem Pascal devem ser arquivos com suxo .pas; solues na linguagem Java devem ser arquivos com suxo .java e a classe principal deve ter o mesmo nome do arquivo fonte; e solues na linguagem Python devem ser arquivos com suxo .py. Para problemas diferentes voc pode escolher trabalhar com linguagens diferentes, mas apenas uma soluo, em uma nica linguagem, deve ser submetida para cada problema. Ao nal da prova, para cada soluo que voc queira submeter para correo, copie o arquivo fonte para o seu diretrio de trabalho ou disquete, conforme especicado pelo seu professor. No utilize arquivos para entrada ou sada. Todos os dados devem ser lidos da entrada padro (normalmente o teclado) e escritos na sada padro (normalmente a tela). Utilize as funes padro para entrada e sada 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 funo padro, como por exemplo Scanner, BueredReader, BueredWriter e System.out.println em Python: read,readline,readlines,print,write Procure resolver o problema de maneira eciente. Na correo, ecincia tambm ser levada em conta. As solues sero testadas com outras entradas alm das apresentadas como exemplo nas tarefas.

Olimpada Brasileira de Informtica OBI2012

Chocolate
Nome do arquivo fonte: chocolate.c, chocolate.cpp, chocolate.pas, chocolate.java, ou chocolate.py Por lei, na Nlognia todas as barras de chocolate so quadradas. Anamaria tem uma barra quadrada de chocolate de lado L, que ela quer compartilhar com alguns colegas da obi. Mas ela uma boa cidad e cumpre a lei. Ento, ela divide a barra em quatro pedaos quadrados, de lado L/2. Depois, ela repete esse procedimento com cada pedao gerado, sucessivamente, enquanto o lado for maior do que, ou igual a 2cm. Voc deve escrever um programa que, dado o lado L da barra inicial, em centmetros, determina quantos pedaos haver ao nal do processo.

Entrada
A entrada consiste de uma linha, com um nico inteiro, L, o nmero de centmetros do lado do quadrado.

Sada
Se programa deve imprimir uma nica linha, contendo um nico inteiro, igual ao nmero total de pedaos obtidos pela Anamaria.

Restries
2 L 104

Informaes sobre a pontuao


Em um conjunto de casos de teste totalizando 30 pontos, L < 64.

Exemplos
Entrada 4 Sada 16

Entrada 9

Sada 64

Entrada 2

Sada 4

Olimpada Brasileira de Informtica OBI2012

Tira-teima
Nome do arquivo fonte: tenis.c, tenis.cpp, tenis.pas, tenis.java, ou tenis.py Uma quadra de tnis tem o formato de um retngulo, cujos lados medem 36 ps por 78 ps, que correspondem a um retngulo de 432 polegadas por 936 polegadas. No ltimo Grand Slam da Austrlia, Rafael Nadal perdeu para Novak Djokovi, num dos jogos mais bonitos de tnis dos ltimos tempos. Muitas vezes, uma jogada to rpida, e a bola to prxima da borda da quadra, que o juiz pode tomar uma deciso que pode ser contestada por um dos jogadores. Para isso, existe o tira-teima, que utiliza a imagem gravada do jogo para decidir se a bola estava dentro ou fora da metade da quadra correspondente a um dos jogadores. Considere que a semi-quadra de Rafael Nadal corresponde a um retngulo em que dois vrtices tm coordenadas (0,0) e (432, 468), onde todos os nmeros so em polegadas. Voc deve escrever um programa para, dadas as coordenadas (X, Y ) do ponto de contato da bola com o solo, determinar se uma bola bateu no solo dentro ou fora da semi-quadra. Note que se a bola bate na linha divisria ela considerada uma bola dentro.

Entrada
A entrada dada em uma nica linha, que contm dois inteiros X e Y , que correspondem s coordenadas do ponto (X, Y ) de contato da bola com o solo, em polegadas.

Sada
Seu programa deve imprimir uma nica linha, contendo a palavra dentro se a bola bateu dentro da semi-quadra, e a palavra fora caso contrrio.

Restries
500 X, Y 500

Exemplos
Entrada -2 200 Sada fora

Entrada 432 10

Sada dentro

Olimpada Brasileira de Informtica OBI2012

Receita de Bolo
Nome do arquivo fonte: bolo.c, bolo.cpp, bolo.pas, bolo.java, ou bolo.py Joo deseja fazer bolos para seus amigos, usando uma receita que indica que devem ser usadas 2 xcaras de farinha de trigo, 3 ovos e 5 colheres de sopa de leite. Em casa ele tem A xcaras de farinha de trigo, B ovos e C colheres de sopa de leite. Joo no tem muita prtica com a cozinha, e portanto ele s se arriscar a fazer medidas exatas da receita de bolo (por exemplo, se ele tiver material suciente para fazer mais do que 2 e menos do que 3 bolos, ele far somente 2 bolos). Sabendo disto, ajude Joo escrevendo um programa que determine qual a quantidade mxima de bolos que ele consegue fazer.

Entrada
A entrada dada em uma nica linha, que contm trs nmeros inteiros A, B e C, indicando respectivamente o nmero de xcaras de farinha de trigo, o nmero de ovos e o nmero de colheres de sopa de leite que Joo tem em casa.

Sada
Seu programa deve imprimir uma nica linha, contendo um nico inteiro, a quantidade mxima de bolos que Joo consegue fazer.

Restries
1 A 100 1 B 100 1 C 100

Exemplos
Entrada 4 6 10 Sada 2

Entrada 4 6 9

Sada 1