Pesquisar este blog

Livros Recomendados

sexta-feira, 5 de março de 2021

URI (BEECROWD) - 2168 - Crepúsculo em Portland - Iniciante - C e C++

Crepúsculo em Portland foi o exercício que acabei de resolver e compartilho as soluções aqui, agora, com vocês. Bom proveito!

Plataforma: URI (BEECROWD)

Problema2168

Enunciado:

No crepúsculo, a cidade de Portland fica cheia de vampiros e lobisomens. Entretanto, nenhum deles quer ser visto enquanto passeiam pelo centro.

Vão ser instaladas câmeras de vigilância em cada esquina do centro de Portland. A cada mês, um mapa atualizado com as câmeras já em funcionamento é disponibilizado no site da prefeitura.

Uma quadra é considerada segura se existem câmeras em, pelo menos, duas de suas quatro esquinas. No centro de Portland todas as quadras são quadrados de mesmo tamanho.

Sua tarefa é, dado o mapa das câmeras em funcionamento nas esquinas, indicar o status de todas as quadras do centro.

Linguagens: C e C++


Solução:

Basicamente era necessário criar uma matriz para o mapa e, após estar populado, verificar se a soma do valor atual com os elementos imediatamente à direita, imediatamente abaixo e do diagonal inferior direito seria maior que um. Nesse caso imprime S, senão imprime U.

Código em C:

#include <stdio.h>

int main() {
    
    int n, linha, coluna;
    
    scanf("%i", &n);
    int mapa[n+1][n+1];
    
    for (linha = 0; linha <= n; linha++)
        for (coluna = 0; coluna <= n; coluna++)
            scanf("%i", &mapa[linha][coluna]);

    for (linha = 0; linha < n; linha++) {
        
        for (coluna = 0; coluna < n; coluna++)
            if (mapa[linha][coluna]+mapa[linha][coluna+1]+mapa[linha+1][coluna]+mapa[linha+1][coluna+1]>1)
                printf("S");
            else
                printf("U");
        
        printf("\n");
    }

    return 0;
}

Código em C++:

#include <iostream>

using namespace std;

int main() {
    
    int n, linha, coluna;
    
    cin >> n;
    int mapa[n+1][n+1];
    
    for (linha = 0; linha <= n; linha++)
        for (coluna = 0; coluna <= n; coluna++)
            cin >> mapa[linha][coluna];

    for (linha = 0; linha < n; linha++) {
        
        for (coluna = 0; coluna < n; coluna++)
            if (mapa[linha][coluna]+mapa[linha][coluna+1]+mapa[linha+1][coluna]+mapa[linha+1][coluna+1]>1)
                cout << "S";
            else
                cout << "U";
        
        cout << endl;
    }

    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas