/*

Este programa recebe como entrada uma sequencia de 0s e 1s terminada
por -1 e tem como saida o comprimento do segmento de 0s mais longo.

Exemplo:

Entrada: 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 -1
Saida:   4

*/

#include <stdio.h>

int main()
{
  int x;
  /* Implementamos um pequeno automato, como discutido em sala.
     Os estados do automato sao dados por s.  Os estados sao
     os seguintes:

     s = -1: estado inicial
     s = 0: ultimo inteiro lido foi 0
     s = 1: ultimo inteiro lido foi 1
  */
  int s = -1;
  int comp_seg;
  int comp_max = 0;
  int tem_mais = 1;
  
  while (tem_mais) {
    scanf("%d", &x);
    switch (s) {
    case -1:
      if (x == 0) {
        comp_seg = 1;
        s = 0;
      } else if (x == 1) 
        s = 1;
      else 
        tem_mais = 0;
      break;
      
    case 0:
      if (x == 0) 
        comp_seg++;
      else if (x == 1) {
        if (comp_seg > comp_max) 
          comp_max = comp_seg;
        s = 1;
      } else {
        if (comp_seg > comp_max) 
          comp_max = comp_seg;
        tem_mais = 0;
      }
      break;
      
    case 1:
      if (x == 0) {
        comp_seg = 1;
        s = 0;
      } else if (x != 1) 
        tem_mais = 0;
      break;

    default: printf("Nao podemos chegar aqui.\n");
      break;
    }
  }

  printf("Segmento mais longo de 0s tem comprimento %d.\n", comp_max);
  
  return 0;
}
