La mia porta del garage elettrico funziona così:
- C'è solo un pulsante per controllare la porta
- Se la porta è completamente chiusa e premo il pulsante, la porta inizia ad aprirsi. Ci vogliono 10 secondi per aprirsi completamente
- Se la porta è completamente aperta e premo il pulsante, la porta inizia a chiudersi. Sono necessari 10 secondi per la chiusura completa
- Se la porta è a metà dell'apertura o della chiusura e premo il pulsante, la porta si ferma e viene lasciata parzialmente aperta.
- Ogni volta che la porta smette di muoversi, sia dal completamento automatico di un'azione aperta o chiusa, sia dall'interruzione manuale premendo il pulsante a metà di un'azione, il meccanismo si inverte e ricorda la sua direzione per l'azione successiva.
- Se il pulsante viene premuto quando la porta è ferma ma parzialmente aperta, il tempo necessario per completare l'azione sarà di una frazione di 10 secondi in proporzione alla quantità che deve muoversi per completare l'azione.
Supponiamo che la porta sia completamente chiusa all'inizio.
Verrà fornito un elenco di input di numeri interi. Questi numeri interi sono il numero di secondi che aspetto tra le successive pressioni del pulsante di controllo.
Uscita due cose:
- una percentuale che indica lo stato della porta una volta completati tutti i pulsanti e la porta ha raggiunto uno stato stabile. L'output del
%simbolo è facoltativo. - un'indicazione inequivocabile di quale direzione percorrerà la porta alla successiva pressione del pulsante. Questo può essere
up/down,U/D,+/-,1/0o qualunque cosa tu scelga.
Si può presumere che la porta impieghi infinitamente meno di 10 secondi per completare un'azione di apertura o chiusura.
Input di esempio:
<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
Uscite previste corrispondenti agli ingressi precedenti
100% D
0% U
0% U
50% D
100% D
100% D
0% U
100% D
0% U
20% U
Esempio funzionante dell'ultimo test
- La porta inizia chiusa. Il pulsante è premuto
- Attendi 11 secondi. La porta finisce completamente aperta. Viene premuto il pulsante.
- Attendi 10 secondi. La porta finisce completamente chiusa. Viene premuto il pulsante.
- Attendi 9 secondi. Viene premuto il pulsante. La porta si ferma al 90% aperta.
- Attendi 8 secondi. Viene premuto il pulsante. La porta inizia a chiudersi.
- Aspetta 7 secondi. Il pulsante è premuto. La porta si ferma al 20% aperta. La prossima direzione sarà in alto.