|
|
Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language
version or invalid test data, or description of the problem is not clear.
SPOJ Problem Set (regionais)
3245. A maior subseqüência crescente
Problema: SEQUE
|
Determinar a subseqüência (contígua) crescente de maior comprimento em uma lista de
numeros é um problema já clássico em competições de programação. Este é o problema que
você deve resolver aqui, mas para não deixar você bocejando de tédio enquanto o soluciona,
introduzimos uma pequena modificação: a lista de numeros é dada na forma de uma matriz
bidimensional e a seqüência de comprimento máximo está “embutida” em uma submatriz da
matriz original.
Vamos definir mais precisamente o problema. A linearização de uma matriz bidimensional
é a justaposição de suas linhas, da primeira a última. Uma submatriz é uma região retangular
(de lados paralelos aos da matriz) de uma matriz. O tamanho de uma submatriz é seu número
de elementos. Você deve escrever um programa que, dada uma matriz de números inteiros,
determine a maior submatriz que, quando linearizada, resulta em uma seqüência crescente.
A figura abaixo mostra alguns exemplos de submatrizes de tamanho máximo que contêm
subseqüências crescentes. Note que mais de uma submatriz que contém uma subseqüência
de comprimento máximo pode estar presente em uma mesma matriz. Note ainda que numa
seqüência crescente não pode haver elementos repetidos: 22, 31, 33 é uma seqüência crescente,
ao passo que 22, 31, 31, 33 não é.
Entrada
A entrada contém vários casos de teste. A primeira linha de um caso de teste contém dois
inteiros N e M indicando as dimensões da matriz (1 <= N, M <= 600). Cada uma das N linhas
seguintes contém M inteiros, separados por um espaço, descrevendo os elementos da matriz. O
elemento Xi,j da matriz é o j-ésimo inteiro da i-ésima linha da entrada (−10^6 <= Xi,j <= 10^6).
O final da entrada é indicado por uma linha que contém apenas dois zeros, separados por
um espaço em branco.
Saída
Para cada um dos casos de teste da entrada seu programa deve imprimir uma única linha,
contendo o número de elementos da maior submatriz que, quando linearizada, resulta em uma
seqüência crescente.
Exemplo
Entrada
3 3
1 2 5
4 6 7
10 8 3
3 4
1 2 1 2
9 6 7 3
8 7 2 8
4 2
-23 -12
0 2
16 15
57 33
4 4
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2
0 0
Saída
4
3
4
1
| Adicionado por: | Wanderley Guimarães |
| Data: | 2008-10-25 |
| Tempo limite: | 2s
|
| Tamanho do fonte: | 50000B |
| Linguagem permitida: | Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL |
| Origem: | Primeira fase da Maratona de Programação - 2008 |
|
|
|
|