/*
 * Arquivo: prog3.8.c
 * ------------------
 * Este programa é uma solução do Problema 3.8
 * do Caderno de Exercícios.
 */
#include <stdio.h>
#include "genlib.h"
#include "simpio.h"

main()
{
    int n, x, xx, f, k, kk;
    bool mudou = FALSE;

    printf("Numero de inteiros?  ");
    n = GetInteger();

    printf("Primeiro inteiro?  ");
    x = GetInteger();		/* Sabemos que n>=1 */
    n--;
    f = x % 2;			/* Paridade inicial da sequencia. */

    k = 1;
    while (n > 0) {
	printf("Proximo inteiro?  ");
	x = GetInteger();
	n--;
	if (x % 2 != f) {
	    mudou = TRUE;	/* Mudou a paridade. */
	    break;
	}
	k++;
    }
    /* Neste ponto, temos o valor k e a paridade inicial. */

    if (!mudou) {		/* Terminou a sequencia sem mudanca de paridade. */
	/* OK, ela 'e k-alternante. */
	printf("A sequencia 'e %d-alternante.\n", k);
	return 0;
    }
    /* Houve mudanca de paridade. */
    while (n > 0) {
	f = 1 - f;		/* Trocamos a paridade. */
	kk = k;			/* Queremos kk elementos com paridade f. */
	while (kk > 0) {
	    xx = x;
	    if (xx % 2 != f) {
		printf("A sequencia nao 'e alternante.\n");
		return -1;
	    }
	    kk--;
	    if (n == 0)
		break;
	    printf("Proximo inteiro?  ");
	    x = GetInteger();
	    n--;
	}
	if (kk != 0) {
	    printf("A sequencia nao 'e alternante.\n");
	    return -2;
	}
    }
    printf("A sequencia 'e %d-alternante.\n", k);
    return 0;
}
