Feu un programa tal que, donada una seqüència de zeros i uns acabada en −1, digui quants errors de paritat hi ha.
En aquesta seqüència, hi ha tres bits de dades, seguits d’un bit de paritat. Un error de paritat s’esdevé quan en el grup de 3 bits hi ha un nombre senar d’uns i el bit de paritat que segueix és un zero, o bé quan en el grup de tres bits hi ha un nombre parell d’uns i el bit de paritat és un u.
Per exemple, per a la seqüència 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 −1, els programa escriurà 1 perquè hi ha un sol error de paritat, mentre que si la seqüència d’entrada és 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 −1 el programa escriurà 4.
Òbviament, no podeu fer servir vectors per a resoldre aquest problema. La seqüència pot ser buida (és a dir, només hi ha un -1). En cas que no ho sigui, sempre hi haurà grups de 3 bits i un de paritat, és a dir, que la mida de la seqüència serà sempre múltiple de 4 (sense comptar-hi el −1 de final de seqüència).
Entrada
Una seqüència de zeros i uns, de mida múltiple de 4, i acabada en −1.
Sortida
El nombre d’errors de paritat de la seqüència.
Input
1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 -1
Output
1
Input
1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 -1
Output
4