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

/*
 * Prototipo da funcao que resolve o item (a)
 */

int bloco(int n);

/*
 * Programa principal
 */

main()
{
    int n, b = 1, x, f;

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

    printf("Primeiro inteiro?  ");
    x = GetInteger();
    n--;

    f = x % 2;

    while (n > 0) {		/* restam n numeros para lermos */
	b++;			/* o bloco deve ter tamanho b */
	f = 1 - f;		/* o bloco deve ter paridade f */

	if (n - b < 0)
	    break;		/* nao vai ter inteiros suficientes para ler */

	if (bloco(b) != f)
	    break;
	n -= b;
    }

    if (n == 0)
	printf("A sequencia 'e %d-alternante.\n", b);
    else
	printf("A sequencia nao 'e alternante.\n");
}

/*
 * Implementacao da funcao como em (a)
 */

int bloco(int n)
{
    int x, f;

    printf("Proximo inteiro?  ");
    x = GetInteger();		/* assumimos n>=1 */
    n--;

    f = x % 2;

    while (n > 0) {
	printf("Proximo inteiro?  ");
	x = GetInteger();
	if (x % 2 != f)
	    break;
	n--;
    }
    if (n != 0)
	return -1;
    else
	return f;
}
