Os testes para as listas de exercicios se dara via arquivos.
Seguem abaixo as especificacoes deles.
 
 

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

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


 















O arquivo de entrada consiste de varios conjuntos de dados. Cada conjunto consiste em uma linha contendo duas strings do alfabeto Ingles de mesmo comprimento "n" separadas por um ou mais espacos em branco. Um conjunto em que as duas strings sao "#" indica o final do arquivo.

OBS: 0 <= n <= 5000

Entrada exemplo:
abcd dabc
a a
adcdefg nmhrtdt
mtrsu trsum
# #

Para cada conjunto, voce deve imprimir duas linhas. Na primeira linha, imprima o numero do conjunto, como mostrado na saida exemplo. Na proxima linha imprima um inteiro k, se existe 0 <= k <= n-1 tal que ai = b[(k+i) mod n], para todo i de 0 a n-1, caso contrario deixe a llinha em branco.

Saida exemplo correspondente à entrada acima:
Conjunto #1
1

Conjunto #2
0

Conjunto #3
 

Conjunto #4
4
 

Obs.:

* O formato dos arquivos de saída deverá seguir EXATAMENTE o padrão estabelecido nos exemplos acima.
 
 



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

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


 















O arquivo de entrada consiste de vários conjuntos de duas sequencias de caracteres. Cada conjunto consiste em uma linha contendo duas strings do alfabeto Ingles com no máximo n caracteres. As duas strings podem estar separadas por um ou mais espacos em branco. A primeira string e' o texto e a segunda e' o padrao. Um conjunto em que as duas strings sao "#" indica o final do arquivo.

Considere que 0 <= n <= 5000.

Entrada exemplo:
xyxxyxyxyyxyxyxxxyxx xyxyyxyxyxx
aabbaabab aba
# #
 

Para cada conjunto, voce deve imprimir tres linhas. Na primeira linha, imprima o numero do conjunto, como mostrado na saida exemplo. Na segunda, imprima "s" se o padrao ocorre no texto ou "n" se o padrao nao ocorre no texto. Na terceira, imprima o numero de comparacoes.
 

Saida exemplo correspondente à entrada acima:
Conjunto #1
s
16

Conjunto #2
s
8

Obs.:

* O formato dos arquivos de saída deverá seguir EXATAMENTE o padrão estabelecido 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 vários conjuntos de duas sequencias de caracteres. Cada conjunto consiste em uma linha contendo duas strings do alfabeto Ingles com no máximo n e m caracteres, respectivamente. As duas strings podem estar separadas por um ou mais espacos em branco. Um conjunto em que as duas strings sao "#" indica o final do arquivo. Cada caracter das strings serao minusculos como no exemplo abaixo.

OBS: 0 <= n <= 100 e 0 <= m <= 100, n pode ser diferente de m

Entrada exemplo:

abcdefg abcdeh
bcd abcde
abcde bcgfe
# #
 

Para cada conjunto, voce deve imprimir uma serie de linhas. Na primeira linha, imprima o numero do conjunto, como mostrado na saida exemplo. Na proxima linha imprima o custo "c" mínimo de edicao e nas proximas linhas quais os passos para transformar a cadeia A na cadeia B com este custo.

Os passos podem ser:
R c n - replace A[n] por c;
M c n - ocorreu match de c na posicao n de A;
D c n - delete c da posicao n de A;
I c n - insert c na posicao n de A.

Exemplo:

----------------
A | B
----------------
M e 5 abcde | bcgfe
I f 5 abcde | bcgf
R g 4 abcdfe | bcg
M c 3 abcgfe | bc
M b 2 abcgfe | b
D a 1 abcgfe |
bcgfe | <-- A se transformou em B
 

Saida exemplo correspondente a entrada acima:
Conjunto #1
2
D g 7
R h 6
M e 5
M d 4
M c 3
M b 2
M a 1

Conjunto #2
2
I e 4
M d 3
M c 2
M b 1
I a 1

Conjunto #3
3
M e 5
I f 5
R g 4
M c 3
M b 2
D a 1
 
 




===========
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 duas sequencias de caracteres. Cada conjunto consiste em uma linha contendo duas strings do alfabeto Ingles com no máximo n e m caracteres, respectivamente. As duas strings podem estar separadas por um ou mais espacos em branco. Um conjunto em que as duas strings sao "#" indica o final do arquivo. Cada caracter das strings serao minusculos como no exemplo abaixo.

OBS: 0 <= n <= 100 e 0 <= m <= 100, n pode ser diferente de m

Entrada exemplo:

abca bcab
x b
# #

Para cada conjunto, voce deve imprimir tres linhas. Na primeira linha,
imprima o numero do conjunto, como mostrado na saida exemplo. Na segunda,
imprima uma maior subsequencia das duas sequencias e na terceira, uma menor
supersequencia. Caso alguma das subsequencias ou supersequencias for
vazia, imprima uma linha em branco.

Saida exemplo correspondente a entrada acima:

Conjunto #1
bca
abcab

Conjunto #2

xb