Você está na página 1de 8

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL

Faculdade de Computação

Listas de Exercícios 1
Algoritmos e Programação I — Engenharia de Computação

Exercícios

1. Para descontrair os alunos após as provas da OBI, a Diretora da escola organizou um


campeonato de aviões. de papel. Cada aluno participante receberá uma certa quantidade
de folhas de um papel especial para fazer os seus modelos de aviões. A quantidade de
folhas que cada aluno deverá receber ainda não foi determinada: ela será decidida pels
juízes da competição. A diretora convidou, para atuarem como juízes, engenheiros da
Embraer, uma das mais bem sucedidas empresas brasileiras, que vende aviões com tec-
nologia brasileira no mundo todo. O campeonato está programado para começar logo
após a prova da OBI, mas os juízes ainda não chegaram à escola. A diretora está aflita,
pois comprou uma boa quantidade de folhas de papel especial, mas não sabe se a quan-
tidade comprada vai ser suficiente.
Considere, por exemplo, que a Diretora comprou 100 folhas de papel especial, e que há
33 competidores. Se os juízes decidirem que cada competidor tem direito a três folhas de
papel, a quantidade comprada pela diretora é suficiente. Mas se os juízes decidirem que
cada competidor tem direito a quatro folhas, a quantidade comprada pela diretora não
seria suficiente. Você deve escrever um programa que, dados o número de competidores,
o número de folhas de papel especial compradas pela Diretora e o número de folhas que
cada competidor deve receber, determine se o número de folhas comprado pela Diretora
é suficiente.

2. Calibrar os pneus do carro deve ser uma tarefa cotidiana de todos os motoristas. Para
isto, os postos de gasolina possuem uma bomba de ar. A maioria das bombas atuais
são eletrônicas, permitindo que o motorista indique a pressão desejada num teclado. Ao
ser ligada ao pneu, a bomba primeiro lê a pressão atual e calcula a diferença de pressão
entre a desejada e a lida. Com esta diferença ela esvazia ou enche o pneu para chegar
na pressão correta. Sua ajuda foi requisitada para desenvolver o programa da próxima
bomba da SBC – Sistemas de Bombas Computadorizadas.
Escreva um programa que, dada a pressão desejada digitada pelo motorista e a pressão
do pneu lida pela bomba, indica a diferença entre a pressão desejada e a pressão lida (que
pode ser negativa).

3. A maioria das universidades brasileiras usa o vestibular para selecionar seus alunos. O
vestibular consiste em uma ou mais provas sobre as matérias do Ensino Médio, visando
avaliar os conhecimentos dos candidatos. Um formato popular de prova de vestibular é
a prova objetiva. Neste formato de prova, cada candidato deve escolher uma das cinco
alternativas apresentadas pela questão como sendo a correta. Durante a correção dos
cartões, cada questão onde a alternativa escolhida pelo candidato é a mesma do gabarito,
ele ganha um ponto. Alguns dos vestibulares mais concorridos do Brasil são disputados

1
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

por dezenas de milhares de candidatos, e, por isso, geralmente usa-se uma folha de leitura
óptica e um programa de computador para corrigir as provas de todos os candidatos e
gerar a lista com suas pontuações. Você trabalha no comitê responsável pelo vestibular
em uma faculdade e deve escrever um programa que, dado o gabarito e as respostas de
um dos candidatos, determina o número de acertos daquele candidato.
A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de en-
trada padrão (normalmente o teclado). A primeira linha da entrada contém um único
inteiro N (1 ≤ N ≤ 80), representando o número de questões na prova. Em seguida são
lidas as respostas marcadas pelo candidato e o gabarito de cada questão (uma questão
por vez). Ambas as cadeias contêm apenas os caracteres ‘A’, ‘B’, ‘C’, ‘D’ e ‘E’ (sempre em
letra maiúscula).
Seu programa deve imprimir na saída padrão uma única linha contendo um único inteiro,
indicando o número de acertos do candidato.

4. O principal prêmio da Olimpíada Brasileira de Informática é o convite para os cursos de


programação oferecidos no Instituto de Computação da Unicamp, com todas as despe-
sas pagas pela Fundação Carlos Chagas. São convidados apenas os competidores que
atingem um certo número mínimo de pontos considerando as duas fases.
Você foi contratado pela Coordenação da OBI para fazer um programa que, dados os
números de pontos obtidos por cada competidor em cada uma das fases, e o número mí-
nimo de pontos para ser convidado, determine quantos competidores serão convidados
para o curso na Unicamp. Você deve considerar que:

• todos os competidores participaram das duas fases;


• o total de pontos de um competidor é a soma de pontos obtidas nas duas fases.

Por exemplo, se a pontuação mínima para ser convidado é 435 e um competidor tirou
200 na primeira fase e 235 na segunda fase, ele será convidado para o curso na Unicamp.
Se um competidor tirou 234 na primeira fase e 200 na segunda fase, o mesmo não será
convidado para o curso.
A entrada contém um único conjunto de testes e a primeira linha contém dois números
inteiros N e P , representando, respctivamente, o número de competidores e o número
mínimo de pontos para ser convidado. Cada uma das N linhas seguintes contém dois
números inteiros X e Y , pontuação do competidor em cada uma das fases. Seu pro-
grama deve imprimir o número de competidores que serão convidados para o curso na
Unicamp.

5. Parte do treinamento de um novo garçom é carregar uma grande bandeja com várias latas
de bebidas e copos e entregá-las todas numa mesa do restaurante. Durante o treinamento
é comum que os garçons deixem cair as bandejas, quebrando todos os copos.
A SBC — Sociedade Brasileira de Copos — analisou estatísticas do treinamento de di-
versos garçons e descobriu que os garçons em treinamento deixam cair apenas bandejas
que têm mais latas de bebidas que copos. Por exemplo, se uma bandeja tiver 10 latas e 4

2
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

copos, certamente o garçom em treinamento a deixará cair, quebrando os 4 copos. Já se a


bandeja tiver 5 latas e 6 copos, ele conseguirá entregá-la sem deixar cair.
Escreva um programa que, dado o número de latas e copos em cada bandeja que o garçom
tentou entregar, imprime o total de copos que ele quebrou.
A primeira linha da entrada contém um inteiro N (1 ≤ N ≤ 100) representando o nú-
mero de bandejas que o garçom tentou entregar. As N linhas seguintes representam as N
bandejas. Cada linha contém dois inteiros L e C, indicando o número de latas e o número
de copos naquela bandeja, respectivamente (0 ≤ L, C ≤ 100).
Seu programa deve imprimir uma única linha, contendo um único inteiro, indicando o
número total de copos que o garçom quebrou.

6. A Copa do Mundo de 2010 será realizada na África do Sul. Bolas de futebol são muito
fáceis de transportar, já que elas saem das fábricas vazias e só são enchidas somente pelas
lojas ou pelos consumidores finais. Infelizmente o mesmo não pode ser dito das bolas de
boliche. Como elas são completamente sólidas, elas só podem ser transportadas embala-
das uma a uma, em caixas separadas.
A SBC — Só Boliche Cascavel — é uma fábrica de bolas de boliche que trabalha somente
através de encomendas e envia todas as bolas por SEDEX. Como as bolas têm tamanhos
diferentes, a SBC tem vários tamanhos de caixas diferentes para transportá-las.
Escreva um programa que, dado o diâmetro de uma bola e as 3 dimensões de uma caixa
(altura, largura e profundidade), diz se a bola de boliche cabe dentro da caixa ou não.
A primeira linha da entrada contém um inteiro N (1 ≤ N ≤ 10.000) que indica o diâmetro
da bola de boliche. A segunda linha da entrada contém 3 números inteiros: a altura A
(1 ≤ A ≤ 10.000), seguida da largura L (1 ≤ L ≤ 10.000) e da profundidade P (1 ≤ P ≤
10.000).
Seu programa deve imprimir uma única linha, contendo a letra ‘S’ caso a bola de boliche
caiba dentro da caixa ou ‘N’ caso contrário.

7. Em noites sem nuvens pode-se muitas vezes observar pontos brilhantes no céu que se
deslocam com grande velocidade, e em poucos segundos desaparecem de vista: são as
chamadas estrelas cadentes, ou meteoros. Meteoros são na verdade partículas de po-
eira de pequenas dimensões que, ao penetrar na atmosfera terrestre, queimam-se rapi-
damente (normalmente a uma altura entre 60 e 120 quilômetros). Se os meteoros são
suficientemente grandes, podem não queimar-se completamente na atmosfera e dessa
forma atingem a superfície terrestre: nesse caso são chamados de meteoritos.
Zé Felício é um fazendeiro que adora astronomia e descobriu um portal na Internet que
fornece uma lista das posições onde caíram meteoritos. Com base nessa lista, e conhe-
cendo a localização de sua fazenda, Zé Felício deseja saber quantos meteoritos caíram
dentro de sua propriedade. Ele precisa de sua ajuda para escrever um programa de com-
putador que faça essa verificação automaticamente
São dados:

3
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

• uma lista de pontos no plano cartesiano, onde cada ponto corresponde à posição
onde caiu um meteorito;
• as coordenadas de um retângulo que delimita uma fazenda.

As linhas que delimitam a fazenda são paralelas aos eixos cartesianos. Sua tarefa é escre-
ver um programa que determine quantos meteoritos caíram dentro da fazenda (incluindo
meteoritos que caíram exatamente sobre as linhas que delimitam a fazenda).
A primeira linha de um conjunto de testes quatro números inteiros X1 , Y1 , X2 e Y2 , onde
(X1 , Y1 ) é a coordenada do canto superior esquerdo e (X2 , Y2 ) é a coordenada do canto
inferior direito do retângulo que delimita a fazenda. A segunda linha contém um inteiro,
N , que indica o número de meteoritos. Seguem-se N linhas, cada uma contendo dois
números inteiros X e Y , correspondendo às coordenadas de cada meteorito.
Seu programa deve conter o número de meteoritos que caíram dentro da fazenda.

8. A empresa local de abastecimento de água, a Saneamento Básico da Cidade (SBC), está


promovendo uma campanha de conservação de água, distribuindo cartilhas e promo-
vendo ações demonstrando a importância da água para a vida e para o meio ambiente.
Para incentivar mais ainda a economia de água, a SBC alterou os preços de seu forneci-
mento de forma que, proporcionalmente, aqueles clientes que consumirem menos água
paguem menos pelo metro cúbico. Todo cliente paga mensalmente uma assinatura de
R$ 7,00, que inclui uma franquia de 10 m3 de água. Isto é, para qualquer consumo entre
0 e 10 m3 , o consumidor paga a mesma quantia de R$ 7 reais (note que o valor da assi-
natura deve ser pago mesmo que o consumidor não tenha consumido água). Acima de
10 m3 , cada metro cúbico subsequente tem um valor diferente, dependendo da faixa de
consumo. A SBC cobra apenas por quantidades inteiras de metros cúbicos consumidos.
A Tabela 1 especifica o preço por metro cúbico para cada faixa de consumo:

Tabela 1: Tabela de Preços de Água de Acordo com o Consumo.


Faixa de Consumo (em m3 ) Preço (por m3 )
até 10 incluído na franquia
11 - 30 R$1,00
31 - 100 R$2,00
101 em diante R$5,00

Assim, por exemplo, se o consumo foi de 120 m3 , o valor da conta é:

• 7 reais da assinatura básica;


• 20 reais pelo consumo no intervalo 11 – 30 m3 ;
• 140 reais pelo consumo no intervalo 31 – 100 m3 ;
• 100 reais pelo consumo no intervalo 101 – 120 m3 .

4
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

Logo o valor total da conta de água é R$ 267,00.


Escreva um programa que, dado o consumo de uma residência em m3 , calcula o valor da
conta de água daquela residência. A única linha da entrada contém um único inteiro N ,
indicando o consumo de água da residência, em m3 (0 ≤ N ≤ 103 ).
Seu programa deve imprimir uma única linha, contendo o valor da conta de água daquela
residência.
9. Os alunos do último ano resolveram organizar uma quermesse para arrecadar fundos
para a festa de formatura. A festa prometia ser um sucesso, pois o pai de um dos for-
mandos, Teófilo, dono de uma loja de informática, decidiu doar um computador para
ser sorteado entre os que comparecessem. Os alunos prepararam barracas de quentão,
pipoca, doces, ensaiaram a quadrilha e colocaram à venda ingressos numerados sequen-
cialmente a partir de 1. O número do ingresso serviria para o sorteio do computador.
Ficou acertado que Teófilo decidiria o método de sorteio; em princípio o sorteio seria,
claro, computadorizado.
O local escolhido para a festa foi o ginásio da escola. A entrada dos participantes foi
pela porta principal, que possui uma roleta, onde passa uma pessoa por vez. Na entrada,
um funcionário inseriu, em uma lista no computador da escola, o número do ingresso,
na ordem de chegada dos participantes. Depois da entrada de todos os participantes,
Teófilo começou a trabalhar no computador para preparar o sorteio. Verificando a lista
de presentes, notou uma característica notável: havia apenas um caso, em toda a lista, em
que o participante que possuia o ingresso numerado com i, havia sido a i-ésima pessoa
a entrar no ginásio. Teófilo ficou tão encantado com a coincidência que decidiu que o
sorteio não seria necessário: esta pessoa seria o ganhador do computador.
Conhecendo a lista de participantes, por ordem de chegada, sua tarefa é determinar o
número do ingresso premiado, sabendo que o ganhador é o único participante que tem o
número do ingresso igual à sua posição de entrada na festa.
A primeira linha de um conjunto de teste contém um número inteiro positivo N que
indica o número de participantes da festa. A linha seguinte contém a sequência, em
ordem de entrada, dos N ingressos das pessoas que participaram da festa.
Seu programa deve imprimir o número do ingresso do ganhador, conforme determinado
pelo seu programa.
10. A invenção do carro tornou muito mais rápido e mais barato realizar viagens de longa
distância. Realizar uma viagem rodoviária tem dois tipos de custos: cada quilômetro
percorrido na rodovia tem um custo associado (não só devido ao consumo de combus-
tível mas também devido ao desgaste das peças do carro, pneus, etc.), mas também é
necessário passar por vários pedágios localizados ao longo da rodovia.
Os pedágios são igualmente espaçados ao logo da rodovia; o começo da estrada não
possui um pedágio, mas o seu final pode estar logo após um pedágio (por exemplo, se
a distância entre dois pedágios consecutivos for de 37 km e a estrada tiver 111 km, o
motorista deve pagar um pedágio aos 37 km, aos 74 km e aos 111 km, logo antes de
terminar a sua viagem).

5
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

Dadas as características da rodovia e os custos com gasolina e com pedágios, calcule o


custo total da viagem.
A entrada consiste de duas linhas. A primeira linha da entrada contém dois inteiros L e
D (1 ≤ L, D ≤ 104 ), indicando o comprimento da estrada e a distância entre pedágios,
respectivamente. A segunda linha contém dois inteiros K e P (1 ≤ K, P ≤ 104 ), indi-
cando o custo por quilômetro percorrido e o valor de cada pedágio. O primeiro pedágio
está localizado no quilômetro D da estrada (ou seja, a distância do início da estrada para
o primeiro pedágio é D quilômetros).
Seu programa deve imprimir uma única linha contendo um único inteiro, indicando o
custo total da viagem.

11. As Ilhas Weblands formam um reino independente nos mares do Pacífico. Como é um
reino recente, a sociedade é muito influenciada pela informática. A moeda oficial é o Bit;
existem notas de B$ 50,00, B$10,00, B$5,00 e B$1,00. Você foi contratado(a) para ajudar na
programação dos caixas automáticos de um grande banco das Ilhas Weblands.
Os caixas eletrônicos das Ilhas Weblands operam com todos os tipos de notas disponíveis,
mantendo um estoque de cédulas para cada valor (B$ 50,00, B$10,00, B$5,00 e B$1,00). Os
clientes do banco utilizam os caixas eletrônicos para efetuar retiradas de um certo número
inteiro de Bits. Sua tarefa é escrever um programa que, dado o valor de Bits desejado pelo
cliente, determine o número de cada uma das notas necessário para totalizar esse valor,
de modo a minimizar a quantidade de cédulas entregues. Por exemplo, se o cliente deseja
retirar B$50,00, basta entregar uma única nota de cinquenta Bits. Se o cliente deseja retirar
B$72,00, é necessário entregar uma nota de B$50,00, duas de B$10,00 e duas de B$1,00.
Cada conjunto de teste é composto por uma única linha, que contém um número inteiro
positivo V , que indica o valor solicitado pelo cliente.
Seu programa deve imprimir quatro inteiros I, J, K e L que representam o resultado en-
contrado pelo seu programa: I indica o número de cédulas de B$50,00, J indica o número
de cédulas de B$10,00, K indica o número de cédulas de B$5,00 e L indica o número de
cédulas de B$1,00.

12. A produtora de refrigerantes CaraCola precisa enviar com freqüência grandes carrega-
mentos para as suas distribuidoras em outros estados. Para isso ela pode utilizar uma
transportadora que trabalha com caminhões ou uma transportadora que trabalha com
trens. As duas transportadoras competem agressivamente para conseguir o serviço, mas
seus custos dependem do momento (por exemplo, se há ou não caminhões disponíveis,
etc.). A cada carregamento, a CaraCola consulta as duas transportadoras, que informam
as condições de preço vigentes no momento, para o estado desejado. Sua tarefa é escrever
um programa que, baseado nas informações das transportadoras, decida se o melhor é
enviar o carregamento por trem ou por caminhão.
As transportadoras informam os seus custos na forma de duas variáveis, representando
duas parcelas. Uma parcela é um custo fixo A que independe do peso do carregamento,
e a outra parcela é um custo variável B que depende do peso do carregamento, em ki-
logramas. A CaraCola utiliza o peso do carregamento para calcular o custo dos trans-

6
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

porte por trem e por caminhão e decidir qual empresa transportadora contratar. Por
exemplo, suponha que a transportadora por trem informa que o seu custo fixo é A =
R$ 450,00 e o seu custo por kilograma é B = R$ 3,50. Suponha ainda que a transporta-
dora por caminhão informa que seu custo fixo é A = R$ 230,00 e o seu custo por kilo-
grama é B = R$ 3,70. Neste caso, para um carregamento que pesa 2354 kg a CaraCola
decide que é melhor fazer o envio por trem, pois 450 + 3,50 x 2354 < 230 + 3,70 x 2354.
Se a diferença entre os custos for menor do que R$ 1,00 a CaraCola prefere o transporte por trem.
Sua tarefa é escrever um programa que recebe como entrada vários casos, cada um apre-
sentando uma lista de custos, e determina se a CaraCola deve enviar o carregamento por
trem ou por caminhão.
Cada conjunto de teste é composto por uma linha, que contém cinco valores. O primeiro
valor é um número inteiro positivo K que representa o peso, em kilogramas, do carre-
gamento. Os quatro valores restantes são números reais A, B, C e D que representam os
custos informados pelas empresas de transporte. A e B representam respectivamente o
custo fixo e o custo variável por kilograma informado pela empresa que utiliza trem. C e
D representam respectivamente o custo fixo e o custo variável por kilograma informado
pela empresa que utiliza caminhão. Os custos são apresentados sempre com precisão de
dois algarismos decimais.
Seu programa deve imprimir uma resposta no formato “envie por trem” ou “envie por
caminhao”.

13. Hipólito é um torcedor fanático. Coleciona flâmulas, bandeiras, recortes de jornal, figu-
rinhas de jogadores, camisetas e tudo o mais que se refira a seu time preferido. Quando
ganhou um computador de presente em uma festa, resolveu montar um banco de da-
dos com os resultados de todos os jogos de seu time ocorridos desde a sua fundação, em
1911. Depois de inseridos os dados, Hipólito começou a ficar curioso sobre estatísticas
de desempenho do time. Por exemplo, ele deseja saber qual foi o período em que o seu
time acumulou o maior saldo de gols. Como Hipólito tem o computador há muito pouco
tempo, não sabe programar muito bem, e precisa de sua ajuda.
Dada uma lista, numerada seqüencialmente a partir de 1, com os resultados de todos
os jogos do time (primeira partida: 3 x 0, segunda partida: 1 x 2, terceira partida: 0 x 5
...). Sua tarefa é escrever um programa que determine em qual período o time conseguiu
acumular o maior saldo de gols. Um período é definido pelos números de seqüência de
duas partidas, A e B, onde A ≤ B. O saldo de gols acumulado entre A e B é dado pela
soma dos gols marcados pelo time em todas as partidas realizadas entre A e B (incluindo
as mesmas) menos a soma dos gols marcados pelos times adversários no período. Se
houver mais de um período com o mesmo saldo de gols, escolha o maior período (ou
seja, o período em que B − A é maior). Se ainda assim houver mais de uma solução
possível, escolha qualquer uma delas como resposta.
A primeira linha de um conjunto de teste contém um inteiro não negativo, N , que indica
o número de partidas realizadas pelo time. Seguem-se N linhas, cada uma contendo um
par de números inteiros não negativos X e Y que representam o resultado da partida:

7
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL
Faculdade de Computação

X são os gols a favor e Y os gols contra o time de Hipólito. As partidas são numeradas
sequencialmente a partir de 1, na ordem em que aparecem na entrada.
Seu programa deve imprimir um par de inteiros I e J que indicam respectivamente a
primeira e última partidas do melhor período, conforme determinado pelo seu programa,
exceto quando o saldo de gols do melhor período for menor ou igual a zero; neste caso a
segunda linha deve conter a expressão “nenhum”.

14. O macaco-prego é um animal irrequieto e barulhento, merecedor também dos adjetivos


desordeiro e despudorado. A sua cabeça, encimada por uma densa pelagem negra ou
marrom-escura, semelhante a um gorro, torna seu aspecto inconfundível. Apesar de ser o
macaco mais comum nas matas do país, uma de suas sub-espécies encontra-se seriamente
ameaçada de extinção: o macacoprego- do-peito-amarelo, que se distingue das demais
pela coloração amarelada do peito e da parte anterior dos braços.
Um grande esforço foi feito pelos primatologistas para aumentar a população dos macacos-
pregodo- peito-amarelo. Sabe-se que eles se alimentam de plantas, das quais consomem
preferencialmente frutos e brotos. Alimentam-se também de muitos animais, preferen-
cialmente lesmas, lagartas e rãs, e preferem as florestas mais densas. Para determinar
o melhor local do país para criar uma nova reserva ambiental para os macacos-prego-
do-peito-amarelo, o governo fez um levantamento das regiões no país onde as condições
preferidas desses animais ocorrem: regiões de floresta densa, regiões com frutos, regiões
com muitos brotos, etc. Ajude a salvar os macacos-pregodo- peito-amarelo.
As regiões propícias para o macaco-prego-do-peito-amarelo foram determinadas como
retângulos cujos lados são todos verticais ou horizontais. Sua tarefa é encontrar o local
ideal para a reserva ambiental, definida como a interseção de todas as regiões dadas.
As regiões foram divididas de tal forma que uma região não tangencia qualquer outra
região. Assim, a interseção entre quaisquer duas regiões ou é um retângulo ou é vazia.
Um conjunto de teste contém um inteiro não negativo, N , que indica o número de re-
giões. Seguem-se N linhas, cada uma contendo quatro números inteiros X, Y , U e V que
descrevem uma região: o par X, Y representa a coordenada do canto superior esquerdo
e o par U , V representa a coordenada do canto inferior direito de um retângulo.
A saída de se programa deve conter as coordenadas do retângulo de interseção encon-
trado pelo seu programa, no mesmo formato utilizado na entrada (canto superior es-
querdo e canto inferior direito). Caso a interseção seja vazia, a segunda linha deve conter
a expressão “nenhum”

Bons Estudos!

Você também pode gostar