11 lines
1.0 KiB
TeX
11 lines
1.0 KiB
TeX
Para resolver o problema, utilizaremos uma \textbf{fila de prioridade (min-heap)} que armazenará os instantes em que cada medicamento deve ser tomado novamente, juntamente com o nome do medicamento. Dessa forma, sempre poderemos determinar facilmente qual é o próximo medicamento a ser administrado.
|
|
|
|
Inicialmente, inserimos na fila todos os medicamentos com o tempo de sua \textit{primeira dose}. Em seguida, repetimos o seguinte processo até listar todas as doses necessárias:
|
|
\begin{enumerate}
|
|
\item Remover da fila o medicamento com o menor tempo de administração (isto é, o que deve ser tomado mais cedo).
|
|
\item Imprimir o nome do medicamento e o tempo.
|
|
\item Calcular o próximo instante em que esse medicamento deverá ser tomado, somando o seu intervalo de tempo ao instante atual.
|
|
\item Inserir novamente o medicamento na fila com o novo instante calculado.
|
|
\end{enumerate}
|
|
|
|
Esse método garante que os medicamentos sejam listados em ordem cronológica, respeitando os intervalos de cada um e evitando que qualquer dose seja esquecida. |