URI Online Judge | 2163
O Despertar da Força
Por M.C. Pinto, UNILA
Brazil
Timelimit: 1
Há muito tempo atrás, em uma galáxia muito, muito distante...
Após o declínio do Império, sucateiros estão espalhados por todo o universo procurando por um sabre de luz perdido. Todos sabem que um sabre de luz emite um padrão de ondas específico: 42 cercado por 7 em toda a volta. Você tem um sensor de ondas que varre um terreno com N x M células. Veja o exemplo abaixo para um terreno 4 x 7 com um sabre de luz nele (na posição (2, 4)).

Você deve escrever um programa que, dado um terreno N x M, procura pelo padrão do sabre de luz nele. Nenhuma varredura tem mais do que um padrão de sabre de luz.
Entrada
A primeira linha da entrada tem dois números positivos N e M, representando, respectivamente, o número de linhas e de colunas varridos no terreno (3 ≤ N, M ≤ 1000). Cada uma das próximas N linhas tem M inteiros, que descrevem os valores lidos em cada célula do terreno (-100 ≤ Tij ≤ 100, para 1 ≤ i ≤ N e 1 ≤ j ≤ M).
Saída
A saída é uma única linha com 2 inteiros X e Y separados por um espaço. Eles representam a coordenada (X,Y) do sabre de luz, caso encontrado. Se o terreno não tem um padrão de sabre de luz, X e Y são ambos zero.
#include <stdio.h>
int main()
{
int rw, clm, i, j, cndtn = 0, n = 0, m = 0;
scanf("%d%d", &rw, &clm);
int ara[rw][clm];
for(i=0; i<rw; i++)
for(j=0; j<clm; j++)
scanf("%d", &ara[i][j]);
for(i=1; i<rw-1; i++)
{
for(j=1; j<clm-1; j++)
{
if(ara[i][j]==42)
if(ara[i-1][j-1]==7 && ara[i-1][j]==7 && ara[i-1][j+1]==7)
if(ara[i][j-1]==7 && ara[i][j+1]==7)
if(ara[i+1][j-1]==7 && ara[i+1][j]==7 && ara[i+1][j+1]==7)
{
cndtn = 1;
n = i+1;
m = j+1;
}
}
}
printf("%d %d\n", n, m);
return 0;
}
Nenhum comentário:
Postar um comentário