Você está na página 1de 5

OBI2008 Caderno de Tarefas

Modalidade Programao N 1, Fase 1 ca vel


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

Sociedade Brasileira de Computaao c www.sbc.org.br Fundaao Carlos Chagas c www.fcc.org.br

Olimp ada Brasileira de Informtica OBI2008 Programaao N 1 Fase 1 a c vel

OBI
Nome do arquivo fonte: obi.c, obi.cpp ou obi.pas O principal prmio da Olimp e ada Brasileira de Informtica o convite para os cursos de programaao oferecidos a e c no Instituto de Computaao da Unicamp, com todas as despesas pagas pela Fundaao Carlos Chagas, patroc c cinadora da OBI. So convidados apenas os competidores que atingem um certo n mero m a u nimo de pontos, consideradas as duas fases de provas. Voc foi contratado pela Coordenaao da OBI para fazer um programa que, dados os n meros de pontos obtidos e c u por cada competidor em cada uma das fases, e o n mero m u nimo de pontos para ser convidado, determine quantos competidores sero convidados para o curso na Unicamp. Voc deve considerar que a e todos os competidores participaram das duas fases; o total de pontos de um competidor a soma dos pontos obtidos nas duas fases; e Por exemplo, se a pontuaao m c nima para ser convidado 435 pontos, um competidor que tenha obtido 200 e pontos na primeira fase e 235 pontos na segunda fase ser convidado para o curso na Unicamp. J um competidor a a que tenha obtido 200 pontos na primeira fase e 234 pontos na segunda fase no ser convidado. a a

Entrada
A entrada contm um unico conjunto de testes, que deve ser lido do dispositivo de entrada padro (normalmente e a o teclado). A primeira linha da entrada contm dois n meros inteiros N e P , representando respectivamente o e u n mero de competidores (1 N 1000) e o n mero m u u nimo de pontos para ser convidado (1 P 1000). Cada uma das N linhas seguintes contm dois n meros inteiros X e Y indicando a pontuaao de um competidor e u c em cada uma das fases (0 X 400) e (0 Y 400).

Sa da
Seu programa deve imprimir na sada padro uma unica linha contendo um unico inteiro, indicando o nmero a u de competidores que sero convidados a participar do curso na Unicamp. a Exemplo de entrada 3 100 50 50 100 0 49 50 Exemplo de sa da 2

Exemplo de entrada 4 235 100 134 0 0 200 200 150 150

Exemplo de sa da 2

Olimp ada Brasileira de Informtica OBI2008 Programaao N 1 Fase 1 a c vel

Insensibilidade
Nome do arquivo fonte: insens.c, insens.cpp ou insens.pas O planeta Bizz ca a 133 upals de distncia do planeta Terra (onde upals uma unidade de medida dada a e por um monte de anos-luz), e parece ser o unico planeta com vida for alm do nosso. Este planeta muito e e interessante, pois, em cada pa seus habitantes tm uma caracter s, e stica diferente. Um desses pa a Cegnia, que tem como caracter ses e o stica o fato de que todos os seus habitantes so cegos. Em a compensaao, todos possuem um sexto sentido acentuado, podendo perceber o que est ` sua volta mesmo c aa sem enxergar. Este ano, o governo da Cegnia far um censo, e dentre os dados de seus habitantes, quer saber o quanto de o a insensibilidade cada pessoa possui. A insensibilidade indica quo ruim a capacidade das pessoas de perceber a e os objetos ` sua volta sem precisar enxergar. a Tal teste feito da seguinte maneira: a pessoa colocada em uma sala onde encontram-se vrios objetos em e e a posioes pr-determinadas. A pessoa deve, ento, dizer quais so as coordenadas de cada objeto dentro da sala. c e a a Para cada objeto, calcula-se o quadrado da distncia entre a posiao adivinhada pela pessoa e a posiao real do a c c objeto; esse valor chamado de D. O n de insensibilidade da pessoa dado pela soma de todos os D. e vel e Por exemplo, suponha que na sala existam 4 objetos, nas coordenadas (1, 1), (3, 4), (5, 7) e (10, 10). Se a pessoa ento disser que os objetos esto, respectivamente, nas posioes (1, 2), (5, 4), (5, 7) e (19, 10), o valor de D para a a c cada objeto ser 1, 4, 0 e 81 e portanto o n de insensibilidade da pessoa 1 + 4 + 0 + 81 = 86. a vel e Voc precisa fazer um programa que, dadas as coordenadas verdadeiras dos objetos e as coordenadas indicadas e por uma pessoa, diga qual o n de insensibilidade dessa pessoa. e vel

Entrada
A entrada contm um unico conjunto de testes, que deve ser lido do dispositivo de entrada padro (normalmente e a o teclado). A primeira linha da entrada contm um unico inteiro N (1 N 1.000), indicando quantos objetos e esto no quarto. As N linhas seguintes contm cada uma quatro inteiros X1 , Y1 , X2 , Y2 (0 Xi 1000). Cada a e linha representa um objeto: a posiao real do objeto (X1 , Y1 ), e a posiao onde a pessoa disse estar tal objeto c e c (X2 , Y2 ). e

Sa da
Seu programa deve imprimir, na sada padro, uma unica linha, contendo um unico inteiro, indicando o n a vel de insensibilidade da pessoa estudada. Exemplo de entrada 4 1 1 1 3 4 5 5 7 5 10 10 Exemplo de sa da 86 2 4 7 19 10

Exemplo de entrada 5 0 1 4 2 0

Exemplo de sa da 51

0 0 0 3 1 3 10 11 10 2 3 3 1 0 1

Olimp ada Brasileira de Informtica OBI2008 Programaao N 1 Fase 1 a c vel

Telefone
Nome do arquivo fonte: telefone.c, telefone.cpp ou telefone.pas As primeiras redes p blicas de telefonia foram constru u das pela AT&T no comeo do sculo XX. Elas permitiam c e que seus assinantes conversassem com a ajuda de uma telefonista, que conectava as linhas dos assinantes com um cabo especial. Essas redes evolu ram muito desde ento, com a ajuda de vrios avanos tecnolgicos. Hoje em dia, essas a a c o redes atendem centenas de milhes de assinantes; ao invs de falar diretamente com uma telefonista, voc pode o e e simplesmente discar o n mero da pessoa desejada no telefone. u Cada assinante recebe um n mero de telefone por exemplo, 55982345678. Qualquer pessoa que discar u esse n mero consegue ento falar com a pessoa do outro lado da linha. Os h u a fens no n mero de telefone so s u a o para facilitar a leitura, e no so discados no telefone. a a Para que que mais fcil de se lembrar de um n mero de telefone, muitas companhias divulgam n meros que a u u contm letras no lugar de d e gitos. Para convert-los de volta para d e gitos, a maioria dos telefones tem letras nas suas teclas:
1 4
GHI

2
ABC

3
DEF

5
JKL

6
MNO

7
PQRS

8
TUV

9
WXYZ

Ao invs de discar uma letra, disca-se a tecla que contm aquela letra. Por exemplo, se voc quiser discar o e e e n mero 0800FALESBC, voc na realidade discaria 08003253722. u e A sua av tem reclamado de problemas de vista em particular, ela no consegue mais enxergar as letrinhas o a nas teclas do telefone, e por isso queria que voc zesse um programa que convertesse as letras em um n mero e u de telefone para d gitos.

Entrada
A entrada contm um unico conjunto de testes, que deve ser lido do dispositivo de entrada padro (normalmente e a o teclado). A entrada composta de apenas uma linha, contendo o n mero de telefone que deve ser traduzido. e u O n mero de telefone contm entre 1 e 15 caracteres, que podem ser d u e gitos e 0 a 9, letras de A a Y e h fens (-).

Sa da
Seu programa deve imprimir, na sada padro, uma unica linha, contendo o n mero de telefone com as letras a u convertidas para d gitos. H fens no n mero telefone devem ser mantidos no n mero de telefone de sa u u da. Exemplo de entrada 55-98-234-5678 Exemplo de sa da 55-98-234-5678

Exemplo de entrada 0800-FALE-SBC

Exemplo de sa da 0800-3253-722

Olimp ada Brasileira de Informtica OBI2008 Programaao N 1 Fase 1 a c vel

Exemplo de entrada M1S-TU-R4

Exemplo de sa da 617-88-74

Você também pode gostar