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)
Problema: 2168
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; }
#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