Os testes para as listas de exercícios serão feitos via arquivos.
Seguem abaixo as especificações deles.

==========
Questão 01
==========

Arquivo fonte: quest1.c
Arquivo de entrada: quest1.in
Arquivo de saída: quest1.out

ENTRADA

O arquivo de entrada consiste de uma sequência de comandos dispostos cada qual em uma linha distinta. A leitura  do arquivo termina com o comando END.

Cada linha do arquivo tera um dos seguintes formatos:
 - I1 n     -> Indica que o inteiro n será inserido na pilha 1;
 - I2 m     -> Indica que o inteiro m será inserido na pilha 2;
 - R1       -> Remover o elemento do topo da pilha 1;
 - R2       -> Remover o elemento do topo da pilha 2;
 - L1       -> Listar pilha 1;
 - L2       -> Listar pilha 2;
 - END      -> Indica o final do arquivo.

Exemplo de arquivo de entrada:
I1 1
I1 2
I1 3
I1 4
I2 10
L1
I1 5
I2 9
I1 6
I1 7
I1 8
I1 100
I2 213
L2
R1
R1
R2
R2
R2
R1
R1
R1
R1
I1 3
R1
R1
R1
R1
L1
L2
END
 
 

SAÍDA

O arquivo de saida se chama "quest1.out". As seguintes mensagens deverão ser geradas no arquivo de saída:

Ao comando IN m(I1 ou I2 - onde N é o número da pilha e m é o elemento a ser inserido) :
Overflow,  caso a pilha esteja cheia.

Ao comando LN (onde N é o número da pilha) :
Pilha N : x1 x2 x3 ...     , onde x1 x2 x3...  são os elementos da pilha N.
ou
Pilha N vazia

Ao comando RN :
Removido da pilha N o numero x   , onde x é o elemento que está no topo da pilha N.
ou
Underflow, caso a pilha N esteja vazia.
 

Tome por exemplo o arquivo de
entrada acima, cujo arquivo de saida será:

Pilha 1: 4 3 2 1
Overflow
Overflow
Pilha 2: 9 10
Removido da pilha 1 o numero 8
Removido da pilha 1 o numero 7
Removido da pilha 2 o numero 9
Removido da pilha 2 o numero 10
Underflow pilha 2
Removido da pilha 1 o numero 6
Removido da pilha 1 o numero 5
Removido da pilha 1 o numero 4
Removido da pilha 1 o numero 3
Removido da pilha 1 o numero 3
Removido da pilha 1 o numero 2
Removido da pilha 1 o numero 1
Underflow pilha 1
Pilha 1 vazia
Pilha 2 vazia

Obs.:
- O vetor que conterá as pilhas possuirá no máximo 10 elementos.
- Note que a listagem deve ocorrer do topo da pilha para sua base.
- A mensagem "Pilha 1 vazia" ou "Pilha 2 vazia" deve ser dada ao listar uma pilha vazia.
- Nao devera haver espaco extra nem comeco nem no final da linha dos arquivos de saida.
- Tentem seguir as mensagens tal qual como especificadas no exemplo acima.
 


==========
Questão 02
==========

Arquivo fonte: quest2.c
Arquivo de entrada: quest2.in
Arquivo de saída: quest2.out

ENTRADA

O arquivo de entrada consiste de uma sequência de comandos dispostos cada qual em uma linha distinta. A leitura  do arquivo termina com o comando END.

Cada linha do arquivo terá os seguintes formatos:
 - I n  -> insere o inteiro n na fila.
 - R    -> remove o primeiro elemento da fila
 - L    -> listar os elementos da fila
 - END  -> Indica o final do arquivo.

Exemplo de arquivo de entrada:
I 1
I 10
I 24
I 100
I 64
I 5
L
R
R
R
L
R
R
R
R
L
I 1
I 2
I 3
I 4
I 5
I 6
I 7
I 8
I 9
I 10
L
I 11
L
END
 

SAÍDA

O arquivo de saida será "quest2.out". Tome por exemplo o arquivo de
entrada acima, cujo arquivo de saida será:

Arquivo de saida para o exemplo acima:
Fila: 1 10 24 100 64 5
Removido 1
Removido 10
Removido 24
Fila: 100 64 5
Removido 100
Removido 64
Removido 5
Underflow
Fila vazia
Fila: 1 2 3 4 5 6 7 8 9 10
Fila: 1 2 3 4 5 6 7 8 9 10 11
 

Obs.:
- Note que a listagem deve ocorrer do inicio da fila para seu fim.
- A mensagem "Fila vazia" deve ser dada ao listar uma fila vazia.
- Nao devera haver espaco extra nem comeco nem no final da linha dos arquivos de saida.
- Tentem seguir as mensagens tal qual como especificadas nos exemplos acima.
 




==========
Questão 03
==========

Arquivo fonte: quest3.c
Arquivo de entrada: quest3.in
Arquivo de saída: quest3.out

O arquivo de entrada consiste de uma sequência de números naturais N, tal que 2<=N<=10000, dispostos cada qual em uma linha distinta. A leitura  do arquivo termina quando N=0. Este número não deve ser processado.

Entrada exemplo:

20
11
36
487
1093
98
0

Saída exemplo correspondente à entrada acima:

O numero 20 possui 8 primos menores que ele.
O numero 11 possui 4 primos menores que ele.
O numero 36 possui 11 primos menores que ele.
O numero 487 possui 92 primos menores que ele.
O numero 1093 possui 182 primos menores que ele.
O numero 98 possui 25 primos menores que ele.
 

Obs:

- O formato dos arquivos de saída deverão seguir EXATAMENTE o padrão estabelecido nos exemplos acima.
- O número 1 não é primo.
 


==========
Questão 04
==========

Arquivo fonte: quest4.c
Arquivo de entrada: quest4.in
Arquivo de saída: quest4.out

O arquivo de entrada consiste de vários conjuntos de dados. Cada conjunto começa com um inteiro N, tal que N é o número de elementos da lista circular simplesmente encadeada. A próxima linha do conjunto contém a sequência dos elementos que devem ser inseridos cada qual em uma célula da lista. A terceira linha do conjunto contém o valor de M, que é a quantidade de pares de pontos a serem lidos. As próximas M linhas do conjunto contém  os M pares de pontos. Um conjunto começado por zero (N=0) indica o final do arquivo. Este conjunto não deve ser processado.

Entrada exemplo:

5
2 5 6 8 9
3
2 6
9 2
6 2
10
10 9 8 7 6 15 14 13 12 11
5
10 11
7 12
14 8
8 8
13 9
0

 Tome por exemplo o arquivo de entrada acima, cujo arquivo de saída será:

Conjunto #1
Distancia entre 2 e 6: 2
Distancia entre 9 e 2: 1
Distancia entre 6 e 2: 2

Conjunto #2
Distancia entre 10 e 11: 1
Distancia entre 7 e 12: 5
Distancia entre 14 e 8: 4
Distancia entre 8 e 8: 0
Distancia entre 13 e 9: 4

Obs:

- Todos os M pares de pontos estão contidos na lista circular;
- Não serão inseridos na lista pontos iguais;
- Não se esqueçam de desalocar da memória TODA a lista circular após processar cada conjunto de dados;
- O formato dos arquivos de saída deverão seguir EXATAMENTE o padrão estabelecido nos exemplos acima.