SPOJ Brasil

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 (obi)

1366. TV da Vovó

Problema: TV

A vovó tem um televisor muito antigo, que ultimamente está exibindo um defeito incômodo: a imagem aparece 'deslocada’ (para cima ou para baixo, para o lado direito ou para o lado esquerdo). Quando a imagem está deslocada para cima, a parte da imagem que deixa de ser vista na parte superior reaparece na parte de baixo da tela. Da mesma forma, quando a imagem está deslocada a direita, a parte da imagem que deixa de ser vista à direita reaparece na tela do lado esquerdo.

A imagem do televisor pode ser vista como uma matriz de pontos organizados em linhas e colunas. Para consertar o televisor da vovó, você pode ajustar a imagem introduzindo uma série de 'comandos de correção’ em um painel de ajuste. Cada comando de correção desloca a imagem de um certo número de linhas (para cima ou para baixo) e um certo número de colunas (para a direita ou para a esquerda).

Tarefa

Dada uma matriz que representa uma imagem defeituosa e uma série de comandos de correção, seu programa deve calcular a matriz que representa a imagem resultante após todos os comandos terem sido aplicados sequencialmente.

Entrada

A entrada possui vários conjuntos de teste. Cada conjunto de teste inicia com a descrição da matriz que representa a imagem do televisor. A primeira linha contém dois inteiros M e N representando o número de linhas e o número de colunas da matriz (1 <= M <= 1000 e 1 <= N <= 1000). As M linhas seguintes da entrada contém cada uma N inteiros, descrevendo o valor de cada ponto da imagem. Após a descrição da imagem, segue-se a descrição dos comandos de correção. Cada comando de correção é descrito em uma linha contendo dois inteiros X e Y. O valor de X representa o deslocamento na direção horizontal (valor positivo representa deslocamento para a direita, valor negativo para a esquerda), e o valor de Y representa o deslocamento da direção vertical (valor positivo para cima, valor negativo para baixo). O final da lista de comandos é indicado por X = Y = 0, e o final da entrada é indicado por M = N = 0.

Exemplo de Entrada
3 3
1 2 3
4 5 6
7 8 9
1 0
1 -1
0 0
3 4
6 7 8 5
10 11 12 9
2 3 4 1
-3 2
0 0
0 0

Saída

Para cada conjunto de teste, o seu programa deve produzir uma imagem na saída. A primeira linha da saída deve conter um identificador do conjunto de teste, no formato "Teste n", onde n é numerado seqüencialmente a partir de 1. A seguir deve aparecer a matriz que representa a imagem resultante, no mesmo formato da imagem de entrada. Ou seja, as N linhas seguintes devem conter cada uma M inteiros que representam os pixels da imagem. Após a imagem deixe uma linha em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente.

Exemplo de Saída
Teste 1
8 9 7
2 3 1
5 6 4

Teste 2
1 2 3 4
5 6 7 8
9 10 11 12

(esta saída corresponde ao exemplo de entrada acima)

Restricões

0 <= N <= 1000 (N = 0 apenas para indicar o final da entrada)
0 <= M <= 1000 (M = 0 apenas para indicar o final da entrada)
0 <= X <= 1000
0 <= Y <= 1000
0 <= número de comandos de correção em cada conjunto de teste <= 1000


Adicionado por:Wanderley Guimarães
Data:2007-03-07
Tempo limite:1s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Olimpiada Brasileira de Informatica 2004

hide comments
2012-01-14 23:59:43 Ruanito Santos
uma dica
for(i = 0; i < m; i++){
for(j = 0; j < n-1; j++){
printf("%d ", tv[(i + y_total) % m][(j + x_total) % n]);
}
printf("%d\n", tv[(i + y_total) % m][(n-1 + x_total) % n]);
}
2011-09-12 01:45:51 thiagojobson [UERN]
Poxa, não me toquei que ajustar tudo no final é bem melhor do que comando por comando ^^
2011-05-24 18:21:38 Hugo Joaquim Maia
A lógica do problema leva algumas tentativas, mas o tempo de execução é o que mata.
Alguém sabe que técnica de otimização faz o código funcionar?
2011-05-19 19:44:09 [ UERN - UFPB ] Thalles Robson
Foi o problema mais dificil que resolvi. A logica é facil, mas estava tomando ERRO EM TEMPO DE EXECUÇÃO sabe-se lah em que parte do codigo.
2011-04-01 07:35:31 Gabriel Almeida Gonçalves
A descrição do problema inverte M e N como linhas e colunas em entrada e saida
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.