Solução Escada Rolante

0 Flares Facebook 0 0 Flares ×

Solução por Rogério Júnior

Quando alguém entra na escada, temos duas possibilidades: ou ela estava funcionando, ou ela não estava. Para cada pessoa que entra, o tempo de funcionamento que ela vai adicionar à escada por ter entrado será contabilizado na variável tempo. Além disso, vamos guardar a variável fim, que guarda o instante em que a última pessoa chega ao topo da escada, para mantermos controle de quando ela está funcionando. Para cada pessoa, vamos ler o instante t em que ela entra na escada. Se a pessoa entra enquanto a escada está parada, ou seja, após a última pessoa ter subido ao topo (if(t>=fim)), então ela terá que funcionar por 10 segundos para levar a pessoa até o topo da escada, logo, executamos o comando "tempo+=10;". Caso contrário, vamos adicionar a tempo apenas a diferença de tempo entre o instante em que a escada ia parar antes (fim) e o instante em quem ela irá parar agora (t+10), ou seja, quantos segundos a mais ela levará para deixar a pessoa atual no topo ("tempo+=t+10-fim;"). Após cada leitura, vamos atualizar o momento em que a escada irá parar, que será 10 segundos após a entrada da última pessoa (fim=t+10;). Após a leitura da entrada, basta imprimir o valor salvo em tempo, seguido da quebra de linha. Segue o código para melhor entendimento:

0 Flares Facebook 0 0 Flares ×
0 Flares Facebook 0 0 Flares ×
%d bloggers like this: