Buscar

TRABALHO FINAL DE ESTRUTURA DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TRABALHO FINAL DE ESTRUTURA DE DADOS - ESTÁCIO/CEUT
Valor do trabalho: 10,0
Forma de execução: em duplas, no máximo
Data final para entrega: 14/11/2017
Forma de apresentação: código fonte + executável a ser apresentada ao professor
1) IDENTIFICADOR DE ESTRUTURA DE DADOS
Existe uma estrutura de dados genérica, do tipo sacola, suportando duas operações:
1 x Jogue um elemento x na sacola.
2 Tire um elemento da sacola.
Dada uma sequencia de operações que retornam valores, você deverá identificar a
estrutura de dados. É uma pilha (LIFO), uma fila (FIFO), uma fila de prioridade (sempre
tire os elementos grandes primeiro) ou qualquer outra estrutura que você dificilmente
consegue identificar! Você deverá utilizar conceitos de manipulação de arquivos de
texto, que configuram a fonte de entrada.
ENTRADA
Existem muitos casos de testes. Cada caso de teste começa com a linha contando um
único inteiro n (1 <= n <= 1000). Cada uma das seguintes n linhas é um comando do tipo
1, ou um número inteiro 2, seguido de um número inteiro x. Isso significa que depois de
executar um comando do tipo 2, obtemos um elemento x sem erros. O valor de x é
sempre um número inteiro, positivo e não maior do que 100. O final da entrada é
determinado pelo final do arquivo (EOF). O tamanho do arquivo de entrada não deve
exceder 1MB.
Saída
Para cada caso de teste, mostre um dos seguintes:
stack
É uma pilha.
queue
É uma fila.
priority queue
É uma fila de prioridade.
impossible
Não pode ser nem uma pilha, nem uma fila nem uma fila de prioridade.
not sure
Pode ser mais de uma das três estruturas mencionadas acima.
Exemplo:
2) BRINDE FACE 2015
A FACE em 2015 está apoiando a terceira edição da Maratona de Programação, mas
desta vez a organização solicitou sua ajuda para criar um sistema de sorteio utilizando
as letras da palavra FACE. Como a feira utiliza uma proposta diferenciada e alegre, cada
participante que entra na feira ganha 4 letras, uma de cada cor e em formato de bloco
de madeira, conforme Figura 1, e deve inseri-las num painel. Se, no momento da
inserção, as 4 letras formarem o contrário das 4 últimas letras, o visitante ganhará um
brinde.
Figura 1 - Entrada de FACE no painel seguido de ACEF.
Por exemplo: suponha que já tiveram 3 participantes que entraram na feira e o painel
ficou da seguinte forma: F A C E E C F A A C F E A C E F. Note que sempre que o painel
fica vazio, assim como no início do evento, as letras F A C E são inseridas pela
organização do evento. Agora, na entrada do quarto participante, ele inseriu as letras F
E C A e, com isso, receberá um brinde por fechar o contrário de A C E F. Após essa
situação, o painel deve ficar F A C E E C F A A C F E.
Escreva um algoritmo que, dadas as letras recebidas e inseridas pelos participantes,
diga quantos participantes ganharam brindes. Lembre-se que sempre que o painel fica
vazio as letras F A C E são inseridas pela organização do evento.
Entrada
A primeira linha de cada caso de teste contém um inteiro N (1 ≤ N ≤ 100),
representando o número de visitantes que vão receber as letras. Em cada uma das N
linhas seguintes deve ser informada a combinação das 4 letras que o visitante deseja
inserir no painel, separadas por espaço.
Saída
Para cada grupo de visitantes, deve ser informado quantos destes receberão brindes.
3) FILA DE SUPERMERCADO
Hoje é a inauguração do supermercado Matheus em Teresina, e todos estão muito
excitados com os baixos preços prometidos.
Este supermercado tem N funcionários que trabalham no caixa, identificados por
números de 1 a N, onde cada funcionário leva um determinado tempo vi para processar
um item de um cliente. Ou seja, se um cliente tem cj itens em sua cesta, um
determinado funcionário levará vi*cj segundos para processar todos os itens deste
cliente.
Quando um cliente entra na fila para ser atendido ele espera até que um funcionário
esteja livre para atendê-lo. Se mais de um funcionário estiverem livres ao mesmo tempo,
o cliente será atendido pelo funcionário de menor número de identificação. Tal
funcionário só estará livre novamente após processar todos os itens deste cliente.
Há M clientes na fila para serem atendidos, cada um com um determinado número de
itens na sua cesta. Dadas as informações sobre os funcionários nos caixas e os clientes,
o gerente pediu sua ajuda para descobrir quanto tempo levará para que todos os
clientes sejam atendidos.
Entrada
A primeira linha conterá dois inteiros N e M, indicando o número de funcionários no
caixa e o número de clientes, respectivamente (1 ≤ N ≤ M ≤ 104).
Em seguida haverá N inteiros vi, indicando quanto tempo leva para o i-ésimo funcionário
processar um item (1 ≤ vi ≤ 100, para todo 1 ≤ i ≤ N).
Em seguida haverá M inteiros cj, indicando quantos itens o j-ésimo cliente tem em sua
cesta (1 ≤ cj ≤ 100, para todo 1 ≤ j ≤ M).
Saída
Imprima uma linha contendo um inteiro, indicando quanto tempo levará para que todos
os clientes sejam atendidos.
4) FILA DO SUS
Os pacientes que chegam na fila do SUS passam por uma triagem imediatamente e vão
para a fila de atendimento. Na triagem a enfermeira anota o horário de entrada do
paciente e quantos minutos ele tem até que sua condição de saúde se torne crítica.
Sabe-se que os pacientes são atendidos de 30 em 30 minutos (sempre nas horas cheias
ou meias horas) quando na fila de atendimento. O inicio da triagem e do atendimento se
dá às 7h da manhã, se não há nenhum paciente sendo atendido e a fila está vazia, o
primeiro paciente é atendido no instante que chega na triagem. O médico atende até o
último paciente na fila. A preocupação é se algum paciente atingiu uma condição crítica
enquanto não tenha sido atendido. Para tanto você foi convidado para verificar na fila
quantos pacientes atingem a condição crítica.
Entrada
A entrada contém vários casos de teste. Cada caso de teste começa com uma linha
com o número inteiro N, 0 < N < 25; o número de pacientes que chegam à triagem. A
seguir são N linhas com os valores inteiros H, M e C, com 7 < H < 19, e 0 ≤ M <60, a
hora e minuto que o paciente chega à triagem. O paciente da linha i sempre chega antes
que, e no máximo junto com, o paciente da linha i + 1. E 0 ≤C ≤ 720 o número de
minutos antes do paciente atingir a condição crítica de saúde.
Saída
Para cada caso de teste pede-se que se imprima em uma linha única o número de
pacientes que atingiram a condição crítica ainda na fila de atendimento.
	ENTRADA
	Saída

Continue navegando