Ingresso:
Un elenco non vuota / vettore in cui ogni elemento contiene un valore / carattere, indica se si contano su o giù . Userò 1e -1, ma puoi scegliere quello che ti piace. Puoi usare solo due valori, non puoi usare 1,2,3...e -1,-2,-3..., rispettivamente su e giù.
Sfida:
Potrai utilizzare i numeri nella serie geometrica 1, 2, 4, 8, 16, 32 ... . Ogni volta che inizi a contare su o giù, conterai con incrementi di 1 , quindi 2 , quindi 4 e così via. Se cambi e inizi a contare nell'altro modo, sottrarrai 1 , quindi 2 , quindi 4 e così via. L'output deve essere il numero che si ottiene alla fine.
Esempi:
Nell'esempio seguente, la prima riga è l'input, la seconda riga è i numeri che stai contando su / giù, la terza riga è la somma cumulativa e l'ultima riga è l'output.
Esempio 1:
1 1 1 1 1 1 1 1 1 1
1 2 4 8 16 32 64 128 256 512
1 3 7 15 31 63 127 255 511 1023
1023
Esempio 2:
1 1 1 1 1 1 -1 -1 -1 -1 1 1 1
1 2 4 8 16 32 -1 -2 -4 -8 1 2 4
1 3 7 15 31 63 62 60 56 48 49 51 55
55
Come puoi vedere, il primo 1o -1"ripristina" il valore che stiamo contando, e sequenze consecutive di 1o -1significa raddoppiare il valore.
Esempio 3:
-1 -1 1 1 -1 -1 -1
-1 -2 1 2 -1 -2 -4
-1 -3 -2 0 -1 -3 -7
-7
Alcuni casi di test aggiuntivi per tenere conto di alcuni casi d'angolo potenziali.
L'ingresso è sulla prima riga. L'output è sul secondo.
1
1
-------
-1
-1
-------
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1
0
Si tratta di code-golf, quindi vince l'invio più breve in ogni lingua.
®ì2Ãxaxì2per salvare due byte.