==========
Questão 0
1
==========

Arquivo fonte: L6Q1.java | L6Q1.c | L6Q1.cpp
Arquivo de entrada: L
6Q1.in
Arquivo de saída: L
6Q1.out

O arquivo de entrada consiste de vários conjuntos de dados. Cada conjunto de dados contém 3 linhas.
Na primeira linha teremos a informação de que alinhamento queremos. Na segunda linha teremos o valor da string s.
Por fim, na última linha teremos o valor da string t.
A informação do alinhamento será dada pelos números
(1 ou 2).
1 - Alinhamento
local
2 - Alinhamento semi-global
O
fim da entrada é indicado pelo fim do arquivo

Para cada caso da entrada, a saída deve conter três linhas, uma com o custo de alinhar s e t, uma com a seqüência align-s, outra com a seqüência align- t, que contêm as seqüências s e t originais, com  " -"  onde ocorrer uma inserção  ou remoção, como descrito em sala de aula.  Após listar cada tripla (custo,align-s, align- t),  deixar uma linha em branco.

NOTA:

Entrada exemplo:

1
xyyx
yyxyy

2
xyyx
yyxyy

1
xyyxxy
yxxxxx

2
xyyxxy
yxxxxx

1
x
y

2
x
y

1
xy
yx

2
xy
yx

1
katia
professora

2
katia
professora

1
aaabbb
bbbaaa

2
aaabbb
bbbaaa

1
bbbaaa
aaabbb

2
bbbaaa
aaabbb

1
abab
baba

2
abab
baba

1
baaa
aaab

2
baaa
aaab

1
aaab
baaa

2
aaab
baaa
 

Saída exemplo correspondente à entrada acima:

Conjunto #1
Score: 6
xyyx--
-yyxyy

Conjunto #2
Score: 6
--xyyx
yyxyy-

Conjunto #3
Score: 6
xyyxxy--
--yxxxxx

Conjunto #4
Score: 4
xyyxxy--
--yxxxxx

Conjunto #5
Score: 0
x
y

Conjunto #6
Score: 0
-x
y-

Conjunto #7
Score: 2
xy-
-yx

Conjunto #8
Score: 2
-xy
yx-

Conjunto #9
Score: 2
-----katia
professora

Conjunto #10
Score: 0
--------katia
professora---

Conjunto #11
Score: 6
aaabbb---
---bbbaaa

Conjunto #12
Score: 6
---aaabbb
bbbaaa---

Conjunto #13
Score: 6
bbbaaa---
---aaabbb

Conjunto #14
Score: 6
---bbbaaa
aaabbb---

Conjunto #15
Score: 6
abab-
-baba

Conjunto #16
Score: 6
-abab
baba-

Conjunto #17
Score: 6
baaa-
-aaab

Conjunto #18
Score: 6
baaa-
-aaab

Conjunto #19
Score: 6
-aaab
baaa-

Conjunto #20
Score: 6
-aaab
baaa-

Obs.:



==========
Questão 0
2
==========

Arquivo fonte: L6Q2.java | L6Q2.c | L6Q2.cpp
Arquivo de entrada: L
6Q2.in
Arquivo de saída: L
6Q2.out

A entrada consiste de vários linhas, cada uma com dois inteiros positivos indicando N e K.

O arquivo de saída consiste do K-ésimo tabuleiro que representa uma solução, assim como o número de retrocessos necessários para encontrá-la. Caso não haja tal solução, imprima uma linha com -1.

NOTA:

Entrada exemplo:

1 1
1 2
2 3
3 3
4 1
4 2
4 5
8 1
8 2
8 10

Saída exemplo correspondente à entrada acima (alternativa 1):

Conjunto #1
Retrocessos: 0
Q

Conjunto #2
-1

Conjunto #3
-1

Conjunto #4
-1

Conjunto #5
Retrocessos: 4
.Q..
...Q
Q...
..Q.

Conjunto #6
Retrocessos: 8
..Q.
Q...
...Q
.Q..

Conjunto #7
-1

Conjunto #8
Retrocessos: 105
Q.......
....Q...
.......Q
.....Q..
..Q.....
......Q.
.Q......
...Q....

Conjunto #9
Retrocessos: 139
Q.......
.....Q..
.......Q
..Q.....
......Q.
...Q....
.Q......
....Q...

Conjunto #10
Retrocessos: 409
.Q......
......Q.
..Q.....
.....Q..
.......Q
....Q...
Q.......
...Q....

Saída exemplo correspondente à entrada acima (alternativa 2):

Conjunto #1
Retrocessos: 0
Q

Conjunto #2
-1

Conjunto #3
-1

Conjunto #4
-1

Conjunto #5
Retrocessos: 4
.Q..
...Q
Q...
..Q.

Conjunto #6
Retrocessos: 7
..Q.
Q...
...Q
.Q..

Conjunto #7
-1

Conjunto #8
Retrocessos: 105
Q.......
....Q...
.......Q
.....Q..
..Q.....
......Q.
.Q......
...Q....

Conjunto #9
Retrocessos: 138
Q.......
.....Q..
.......Q
..Q.....
......Q.
...Q....
.Q......
....Q...

Conjunto #10
Retrocessos: 400
.Q......
......Q.
..Q.....
.....Q..
.......Q
....Q...
Q.......
...Q....

Obs.: