Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaA – É Lagoaou não é?
Arquivofonte: lagoa.pas lagoa.c lagoa.cpp lagoa.java
Autor:Pablo Durans,alunodo 3o. Períodode Computação
Um aluno de geografia, interessadoem catalogartodas as lagoasencontradasem um arquipélago,utilizou uma matriz que
representava fotos de satélite de um arquipélago com milhares de lagoas e lagunas. Essa matriz lhe dizia se uma
determinada coordenadada foto era coberta por “água” ou por “terra”. Pra determinar se uma área é ou não é lagoa, ele
definiu que basta existirem coordenadas “água” adjacentes cercada de coordenadas “terra” por todos os lados.
Assim,ajude-o nessaimportantemissão!Obs: A águaescorreem sentidodiagonal.
Entrada
A entradase divide em duas partes: na primeira parte, serão lidos dois inteiros m e n que representama matriz m x n que
será preenchida por 'A's ou 'T's (A de água e T de terra). Na segunda parte será lido um inteiro k, que será o número de
casos de teste. Cadacaso de teste apresentadois valores inteiros x,y (0<x≤m,0<y≤n),que representaa coordenadaa ser
analisada.O programaterminacomos valoresde m e n iguais a 0.
Saída
Para cadacaso de teste, deve ser dada comosaídaumalinha contendo“Naoe Lagoa”para o caso da coordenadanão ser
umalagoaou “E Lagoa”caso contrário.
Exemplode entrada
7 9
TTTTATTTT
Respectivasaída
Nao e Lagoa
Nao e Lagoa
E Lagoa
TTTTTAATT
ATTTAAATT
AATTTTTTT
ATTTTAAAT
TTTTTAAAT
TTTTTTTTT
3
2 6
1
Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaB – O Dilemada Arqueologista
Arquivofonte: dilema.pas dilema.c dilema.cpp dilema.java
Adaptação:DiogoDuailibeda Silva, alunodo 5o. períodode Computação
Uma arqueologista, procurando uma prova da presença de civilizações antigas, descobriu uma muralha parcialmente
destruída contendo cadeias de números muito estranhas. A parte esquerda desta linha de dígitos estava praticamente
intacta, mas para infelicidade da arqueóloga, a parte direita estava muito danificada devido a ação da erosão. Entretanto,
ela percebeu que todos os números com os dígitos intactos eram potências de 2 e assim ela chegou a uma hipótese: de
que todosos númeroserampotênciasde dois. Para reforçar sua crença, ela selecionouuma lista de númerosem que,
aparentemente, o número dos dígitos legíveis é estritamente menor que o dos dígitos danificados. Então ela pede para
você encontrar a menor potência de dois, se ela existir, em que os primeiros dígitos coincidam com aqueles da lista. Ou
seja, escreva um programaque, dado um inteiro, ele determine o menor expoente E em que os primeiros dígitos de 2^E
coincidamcomo inteiro. (Lembre-se que maisda metadedos dígitosestãoperdidos).
Entrada
A entrada consiste de várias linhas, uma linha por caso. Cada linha contém um número inteiro simples. Se existir uma
potênciade 2 que correspondeao número,ele é menorou igual a 2^31. A entradaterminacomumalinha contendo0.
Saída
Para cada linha da entrada, deve ser exibido o menor valor E para que os primeiros dígitos de 2^E sejam precisamenteos
dígitos da entrada.Se não existir a potência, devehaver na saída“Naoexiste potenciade 2”.
Exemplode entrada
1
2
10
0
Respectivasaída
7
8
20
2
Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaC – Despesasdo Hotel
Arquivofonte: hotel.pas hotel.c hotel.cpp hotel.java
Autor:Daniel Lima, alunodo 7o. Períodode Computação
O dono de um hotel está tendo problemas financeiros, principalmente as contas de energia, que estão altíssimas. Para
resolver esse problema,ele contratouum economista, que lhe deu a brilhante solução: nos dias em que houvessea maior
quantidade de quartos ocupados, ele poderia fazer um sistema de racionamento de energia. Mas para isso ele precisa
determinarem quais períodosdo ano ele terá maior númerode hóspedes,de acordocomo númerode reservas.Ajude-o!
Entrada
São dados vários conjuntosde entradas. Cadaconjunto de entradasé compostopor duas partes: na primeira linha é dado
um valor k, indicando o número de hospedagens no período. Para cada uma das k-linhas seguintes é dado o dia de
entradae o dia de saída (os dias são numeradosde 1 a 365, a partir de primeiro de janeiro). O hotel fecha no dia 365 (31
de dezembro), não permitindo, portanto, hospedagenspara o Reveillon (desconsidereanos bissextos). Um conjuntocom 0
hospedagensindica o fim da entrada.
Saída
Cada conjunto da entrada deve ter como saída dois valores: a quantidade máxima de hóspedes e os dias em que houve
essa máxima.As respostasdevemconterumalinhaem brancoseparando-as.
Exemplode entrada
3
3 26
23 46
18 22
2
1 20
18 24
0
Respectivasaída
2
18 19 20 21 22 23 24 25 26
2
18 19 20
3
Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaD – Degraus
Arquivofonte: degraus.pas degraus.c degraus.cpp degraus.java
Autora:VanessaLeite, alunado 3o. períodode Computação
Duas amigas bastante curiosas achamque para tudo existe uma explicação lógica e matemática. Certa vez, foram juntas
ao shopping e observaram durante muito tempo a escada rolante. Ficaram curiosas em saber quantos degraus ficariam
visíveis por vez. Para isso, elas começarama subir a escadajuntas, sendoque uma subia de um degraupor vez e a outra
ia de dois em dois. Dada a quantidade de degraus contada por uma e por outra, você é capaz de criar uma solução que
informequantosdegrausestãovisíveis?Nãoesqueçamque a escadacontinuaem movimento.
Entrada
A entrada consistemem dois valores p e q , sendo p<q<100que representamo numero de degraus da menina que subiu
um degrau por vez e o da menina que subiu dois de cada vez, respectivamente. A entrada termina com o valor de p e q
igual a 0.
Saída
Para cadalinha da entrada,deveráser exibidacomosaídaquantosdegrausvisíveis possui a escadarolante.
Exemplode entrada
21 28
24 32
0 0
Respectivasaída
42
48
4
Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaE – NúmerosFigurativos
Arquivofonte: figurativos.pas figurativos.c figurativos.cpp figurativos.java
Autor:EduardoAraújo, alunodo 3o. Períodode Computação
Na escola de Pitágoras no século VI a.C., onde se dizia que “Tudo é Número”, iniciou-se o estudo de números especiais,
chamados de figurativos, que são os números que podem ser representados geometricamente como uma disposição de
pontosem configuraçõespoligonais. Sendoformadospelasdisposiçõesde pontos, podese notar aindaque 1 pontoé base
para todos os polígonos. Assimos númerostriangulares, caso particular dos númerosfigurativospodemser representados
geometricamente como disposição de pontos em forma de triângulos. Tomando os números triangulares ainda como
exemplopodemosdefinir sua seqüênciaassim:
T(3) = 1, 3, 6, 10, 15, 21, ...
T(3, 1) = 1
T(3, 2) = 3 T(3, 3) = 6
T(3, 4) = 10
T(3, 5) = 15
T(3, 6) = 21
Sua tarefa é informara quantidadeQ de pontosno n-ésimotermoda seqüênciapara um polígonode k lados, em
que Q é sempre0 < Q < 2³². E aindak > 2 e n > 0.
Entrada
A entrada consiste de um numero k que representa o tipo de polígono, ou seja, a quantidade lados, e um número n que
representao n-ésimotermoda seqüência.A entradaterminaquandoos valoresde k e n são 0
Saída
A saída deve imprimir uma linha que informa qual o tipo de polígono e uma outra que informa a quantidade pontos no nésimotermoda seqüência.Duassaídasconsecutivassão separadaspor umalinha em branco
Exemplode entrada
3
4
7
0
4
6
15
0
Respectivasaída
10
36
540
5
Maratona de Programação Beneficente
Departamento de Informática – 1 de julho de 2006
ProblemaF – Estrelasem Slogo
Arquivofonte: estrelas.pas estrelas.c estrelas.cpp estrelas.java
Autor:PabloDurans,alunodo 3o. períodode Computação
Slogo é uma linguagem de programação para crianças que consiste em uma tartaruga que obedece ordens de ir para
frente, ou para trás ou virar a esquerda ou virar a direita. Além disso, assim como a maioria (senão em todas as
linguagens),ela tem comandoscondicionaise de repetições.Por ondea tartarugapassaela deixa um rastro que, conforme
a capacidade daquele que a domina, é capaz de fazer desenhos. Uma certa criança, tentando fazer um desenho,
descobriuque existe uma maneirabemsimplesde fazer estrelas de 5 pontas. O comandoque ela digitavaera: “repita 5 [pf
100 pe 144]”. Onde “repita 5” quer dizer que a tartaruga vai repetir o bloco que comando a seguir 5 vezes, “pf 100” que
dizer que a tartarugairá avançar 100 unidadesde comprimentoe “pe 144” diz que a tartarugairá virar a esquerdacom um
ângulo de 144º. Como criança inteligente que ela era, ela descobriu que era possível fazer estrelas de mais de cinco
pontas e com a mesmaformula “repita n[pf len pe ang] ”, onde n seria o númerode pontas na estrela, len seria o tamanho
da estrela e ang seria um ânguloque dificilmente umacriançapoderiacalcular. Entãoesse é seu trabalho.
Entrada
A entrada consiste em um numero n (0<n<1000), que é o numero de pontas que uma estrela têm. A entrada termina
quandoo valoresde n for igual a zero.
Saída
A saída deve ser um ângulo x (0<x<180) com três casas de precisão que é menor ângulo que a tartaruga deve virar a
esquerda ou, caso a estrela seja impossível de ser feita com uma só linha, uma mensagem “Estrela impossível de ser
feita”.
Exemplode entrada
2
6
30
0
Respectivasaída
Estrela impossível de se fazer
Estrela impossível de se fazer
84.000
6
Download

Enunciados das Questões