Minha porta da garagem elétrica funciona assim:
- Há apenas um botão para controlar a porta
- Se a porta estiver totalmente fechada e eu apertar o botão, a porta começará a abrir. Leva 10 segundos para abrir totalmente
- Se a porta estiver totalmente aberta e eu apertar o botão, a porta começará a fechar. Demora 10 segundos para fechar completamente
- Se a porta estiver abrindo ou fechando parcialmente e eu apertar o botão, a porta para e fica parcialmente aberta.
- Sempre que a porta parar de se mover, seja pela conclusão automática de uma ação de abertura ou fechamento ou pela interrupção manual pressionando o botão parcialmente, uma ação, o mecanismo será revertido e lembrará sua direção para a próxima ação.
- Se o botão for pressionado quando a porta estiver parada, mas parcialmente aberta, a quantidade de tempo para concluir sua ação será uma fração de 10 segundos na proporção da quantidade necessária para se mover para concluir a ação.
Suponha que a porta esteja totalmente fechada no início.
Uma lista de entrada de números inteiros será fornecida. Esses números inteiros são o número de segundos que eu espero entre toques sucessivos no botão de controle.
Saída duas coisas:
- uma porcentagem indicando o estado da porta quando todos os botões forem pressionados e a porta atingir um estado estável. A saída do
%
símbolo é opcional. - uma indicação inequívoca de qual direção a porta seguirá no próximo pressionamento de botão. Pode ser
up
/down
,U
/D
,+
/-
,1
/0
ou o que você escolher.
Você pode assumir que a porta leva infinitamente menos de 10 segundos para concluir uma ação de abrir ou fechar.
Exemplo de entradas:
<empty list> # button was pushed just once
20 # button was pushed twice with 20 seconds between
10
5
20 20
10 10
5 5
1 2 3
8 9 10 11
11 10 9 8 7
Saídas esperadas correspondentes às entradas acima
100% D
0% U
0% U
50% D
100% D
100% D
0% U
100% D
0% U
20% U
Exemplo resolvido do último teste
- A porta começa fechada. O botão é pressionado
- Aguarde 11 segundos. A porta acaba totalmente aberta. O botão é pressionado.
- Aguarde 10 segundos. A porta acaba totalmente fechada. O botão é pressionado.
- Aguarde 9 segundos. O botão é pressionado. A porta para com 90% de abertura.
- Aguarde 8 segundos. O botão é pressionado. A porta começa a fechar.
- Aguarde 7 segundos. O botão é pressionado. A porta para com 20% de abertura. A próxima direção será ativada.