sexta-feira, 20 de abril de 2018

URI PROBLEMA 2163 - O Despertar da Força SOLUÇÃO EM C

URI Online Judge | 2163

O Despertar da Força

Por M.C. Pinto, UNILA BR 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 ≤ NM ≤ 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

URI PROBLEMA 1133 - Resto da Divisão SOLUÇÃO EM C

URI Online Judge | 1133 Resto da Divisão Adaptado por Neilor Tonin, URI   Brasil Timelimit: 1 Escreva um programa que leia 2 valo...