Você está na página 1de 5

OBI2012 Caderno de Tarefas

Modalidade Programao Nvel 1, Fase 1


14 de abril de 2012 A PROVA TEM DURAO DE 4 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

Vice-campeo
Nome do arquivo fonte: vice.c, vice.cpp, vice.pas, vice.java, ou vice.py A OBI (Organizao de Bocha Internacional) responsvel por organizar a competio mundial de bocha. Infelizmente esse esporte no muito popular, e numa tentativa de aumentar a sua popularidade, cou decidido que seriam chamados, para a Grande Final Mundial, o campeo e o vice-campeo de cada sede nacional, ao invs de apenas o primeiro lugar. Tumblia um pas pequeno que j havia realizado a sua competio nacional quando a nova regra foi instituda, e o comit local no armazenou quem foi o segundo classicado. Felizmente eles armazenaram a pontuao de todos competidores que foram apenas trs, devido ao tamanho diminuto do pas. Sabe-se tambm que as pontuaes de todos jogadores foram diferentes, de forma que no ocorreu empate entre nenhum deles. Resta agora descobrir quem foi o vice-campeo e para isso o comit precisa de ajuda.

Entrada
A primeira e nica linha da entrada consiste de trs inteiros separados por espaos, A, B e C, as pontuaes dos 3 competidores.

Sada
Imprima uma nica linha na sada, contendo apenas um nmero inteiro, a pontuao do vice-campeo.

Restries
1 A 100 1 B 100 1 C 100

Exemplos
Entrada 4 5 6 Sada 5

Entrada 10 5 9

Sada 9

Olimpada Brasileira de Informtica OBI2012

Corrida
Nome do arquivo fonte: corrida.c, corrida.cpp, corrida.pas, corrida.java, ou corrida.py Leonardo um corredor prossional que participa de diversos campeonatos de atletismo pelo mundo. O tamanho das pistas ao redor do mundo no padronizado. Por isso, Leonardo, que treina em um clube que possui uma pista circular, resolveu xar seu treinamento em C metros, ao invs de um nmero xo de voltas na pista. Aps cada treinamento, Leonardo deve tomar meio litro de gua antes de fazer qualquer esforo, e por isso quer deixar sua garrafa de gua exatamente no ponto da pista onde ele termina o seu treinamento. Sabendo o comprimento da pista de corrida que Leonardo pretende treinar, ele resolveu pedir sua ajuda para calcular o local do ponto de trmino do treinamento. O ponto de trmino o local da pista onde ele termina o percurso de C metros considerando que ele parte do ponto de partida e se movimenta sempre na mesma direo. O ponto de trmino dado pelo nmero de metros entre o ponto de partida e o local onde Leonardo termina seu treinamento, contados na direo do percurso. Leonardo quer deixar sua garrafa de gua neste ponto. Por exemplo, se a pista tem 12 metros e Leonardo xou seu treinamento em 22 metros, o ponto de trmino 10. Sua tarefa , dado o nmero C de metros que Leonardo pretende correr e o comprimento N em metros da pista circular, determinar o ponto de trmino de seu treinamento.

Entrada
A entrada consiste em apenas uma linha contendo dois inteiros C e N que indicam, respectivamente, o nmero de metros que Leonardo pretende correr e o comprimento da pista.

Sada
Seu programa deve imprimir apenas uma linha, contendo apenas um inteiro, indicando o ponto de trmino do treinamento de Leonardo.

Restries
1 C 108 1 N 100

Exemplos
Entrada 7000 100 Sada 0

Entrada 918 76

Sada 6

Olimpada Brasileira de Informtica OBI2012

Consecutivos
Nome do arquivo fonte: iguais.c, iguais.cpp, iguais.pas, iguais.java, ou iguais.py Num sorteio que distribui prmios, um participante inicialmente sorteia um inteiro N e depois N valores. O nmero de pontos do participante o tamanho da maior sequncia de valores consecutivos iguais. Por exemplo, suponhamos que um participante sorteia N = 11 e, nesta ordem, os valores 30, 30, 30, 30, 40, 40, 40, 40, 40, 30, 30 Ento, o participante ganha 5 pontos, correspondentes aos 5 valores 40 consecutivos. Note que o participante sorteou 6 valores iguais a 30, mas nem todos so consecutivos. Sua tarefa ajudar a organizao do evento, escrevendo um programa que determina o nmero de pontos de um participante.

Entrada
A primeira linha da entrada contm um inteiro N , o nmero de valores sorteados. A segunda linha contm N valores, V1 , V2 , . . . , VN , na ordem de sorteio, separados por um espao em branco.

Sada
Seu programa deve imprimir apenas uma linha, contendo apenas um inteiro, indicando o nmero de pontos do participante.

Restries
1 N 104 231 VI 231 1, para I = 1, 2, . . . , N

Exemplos
Entrada 11 30 30 30 40 40 40 40 40 30 30 30 Sada 5

Entrada 14 1 1 1 20 20 20 20 3 3 3 3 3 3 3

Sada 7

Você também pode gostar