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

Arquivo fonte: L0Q1.java | L0Q1.c | L0Q1.cpp
Arquivo de entrada: L0Q1.in
Arquivo de saída: L0Q1.out

O arquivo de entrada consiste de uma seqüência de conjuntos de dados. Cada conjunto de dados consiste em duas matrizes.

Uma matriz de consiste em dois valores L e N em uma linha, separados por espaços. L representa o número de linhas da matriz e N, o número de elementos por linha. Segue-se, então, L linhas cada uma com N inteiros, correspondentes às posições (i, j) da matriz.

Separando cada conjunto temos uma linha em branco. O fim do arquivo indica que não há mais conjuntos de dados. Os valores de L, N e Ai, j variam da seguinte forma: 0 ≤ N,L ≤ 100 e 0 ≤ Ai, j ≤ 1000.

A matriz de saida será impressa de forma similar às matrizes de entrada (não há necessidade da imprimir L e N, apenas os elementos da matriz resultante). Caso a matriz resultante não exista (a multiplicação não possa ser realizada), imprima -1.

Pra cada conjunto de dados deveremos ter o número do conjunto de entrada e exatamente uma matriz de saída (ou -1). Após cada saída imprima uma linha em branco.

Entrada exemplo:

1 1
30
1 1
20

2 2
1 2
4 5
3 3
1 2 3
4 5 6
7 8 9

3 3
1 0 0
0 1 0
0 0 1
3 3
1 2 3
4 5 6
7 8 9

Saída exemplo correspondente à entrada acima:

Conjunto #1
600

Conjunto #2
-1

Conjunto #3
1 2 3
4 5 6
7 8 9



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

Arquivo fonte: L0Q2.java | L0Q2.c | L0Q2.cpp
Arquivo de entrada: L0Q2.in
Arquivo de saída: L0Q2.out

O arquivo de entrada consiste de uma seqüência de conjuntos de dados. Cada conjunto de dados consiste em uma matriz.

Uma matriz é definida de forma similar ao descrito na questão 1, mas os elementos podem ser números reais.

Separando cada conjunto temos uma linha em branco. O fim do arquivo indica que não há mais conjuntos de dados. Os valores de L, N e Ai, j variam da seguinte forma: 0 ≤ N, L ≤ 20 e 0 ≤ Ai, j ≤ 100.

A matriz resultante de cada conjunto de dados deverá ser impressa de forma similar à matriz de entrada (com excecao de L e N). Cada elemento Ri, j da matriz resultante é calculado segundo a regra:

Ri, j = média aritmética dos elementos situados no retângulo [(0,0) x (i,j)] da matriz de entrada

Pra cada conjunto de dados devemos ter o número do conjunto de entrada e exatamente uma matriz resultante. Após cada matriz resultante imprima uma linha em branco.

OBS: cada elemento deve ser impresso com precisão de duas casas decimais.

Entrada exemplo:

2 2
10.45 0.0
9.55 0.0

2 2
1 2
2 3

3 3
1 0 0
0 1 0
0 0 1

Saída exemplo correspondente à entrada acima:

Conjunto #1
10.45 5.23
10.00 5.00

Conjunto #2
1.00 1.50
1.50 2.00

Conjunto #3
1.00 0.50 0.33
0.50 0.50 0.33
0.33 0.33 0.33


 

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

Arquivo fonte: L0Q3.java | L0Q3.c | L0Q3.cpp
Arquivo de entrada: L0Q3.in
Arquivo de saída: L0Q3.out

O arquivo de entrada consiste de uma seqüência de conjuntos de dados. Cada conjunto de dados consiste numa declaração de uma matriz tridimensional e numa lista de inteiros a pesquisar nesta matriz.

Cada matriz tridimensional é definida da seguinte forma: uma primeira linha contém três inteiros L, C, e N indicando, repectivamente o número de linhas, número de colunas e a 'profundidade' da matriz.

Seguem-se L conjunto de linhas de arquivo. Cada conjunto consiste em C linhas com N inteiros cada uma. (uma matriz de ordem (2,3,4) teria dois conjuntos, cada um com 3 linhas, cada linha com quatro elementos - um total de seis linhas de arquivo)

Cada lista de inteiros a pesquisar é definida por: um inteiro indicando a quantidade K de numeros a pesquisar, numa linha. Os K números (inteiros) separados por espaços na linha seguinte.

Separando cada conjunto de dados temos uma linha em branco. O fim do arquivo indica que não há mais conjuntos de dados. Os valores variam da seguinte forma: 0 ≤ L, C, N ≤ 50 e 0 ≤ Aij ≤ 1000.

A saída para cada conjunto de dados terá K+1 linhas, onde K é o número de inteiros que foram pesquisados na matriz.

A primeira linha deve conter o número do conjunto de entrada. Para cada uma das linhas restantes, imprima o numero inteiro que foi pesquisado seguido por todas as triplas (i,j,k) onde o elemento K foi encontrado. Separe o elemento K das triplas por um espaço em branco. Separe as triplas com espaço em branco.

Uma linha em branco deverá ser impressa após cada conjunto de solução.

OBS: as posições (i, j, k) devem ser ordenadas de acordo com o menor valor de i. Em caso de empate, fazer o mesmo para j. O mesmo vale para k.

Entrada exemplo:

2 2 2
1 3
3 5
5 7
7 7
4
1 3 5 7

1 1 1
1
1
1

Saída exemplo correspondente à entrada acima:

Conjunto #1
1 (1,1,1)
3 (1,1,2) (1,2,1)
5 (1,2,2) (2,1,1)
7 (2,1,2) (2,2,1) (2,2,2)

Conjunto #2
1 (1,1,1)



[Última alteração em 01/11/2002 por katia.]