Pesquisar este blog

Livros Recomendados

segunda-feira, 15 de março de 2021

URI (BEECROWD) - 2523 - A Mensagem de Will - Iniciante - C e C++

Nova solução! A Mensagem de Will é um problema de iniciantes. Resolvi com poucas linhas de código. Confira abaixo!

Antes de resolver qualquer algoritmo do URI (BEECROWD agora), recomendamos seguir os seguintes passos:

  1. Ler todo enunciado do problema.
  2. Ler os tópicos do fórum em caso de dúvidas
  3. Preparar arquivos de entrada para teste, considerando as entradas de exemplo do URI, do udebug e outros valores limite;
  4. Preparar o ambiente de desenvolvimento e utilizar os mesmos parâmetros dos compiladores do URI
  5. Preparar um código-fonte padrão, já contendo a chamada às bibliotecas padrão, pré-processadores, retorno de função e um comando de escrita com "\n", pois no URI a grande maioria dos problemas exige a quebra de linha final.

Plataforma: URI (BEECROWD)

Problema2523

Enunciado:

Ao voltar de um intenso jogo de RPG na casa de um amigo, o jovem Will desapareceu misteriosamente! Todos estão desesperadamente procurando por ele por todos os cantos. Enquanto isso, coisas estranhas estão acontecendo em sua casa. Uma delas, entretanto, lhe permite comunicar-se com o garoto!

Há exatamente 26 lâmpadas penduradas na parede da sua sala, numeradas de 1 a 26 da esquerda para a direita. Além disso, há uma letra do alfabeto pintada na parede em baixo de cada lâmpada. Quando Will quer lhe enviar uma mensagem, ele irá (misteriosamente) piscar, uma a uma, as lâmpadas correspondentes a cada letra de sua mensagem. Por exemplo, se ele quer enviar a mensagem HELP, ele irá piscar, nesta ordem, as lâmpadas acima das letras H, E, L e P.

Dada a letra associada a cada lâmpada e a ordem das lâmpadas que foram piscadas por Will, decifre a mensagem que ele enviou!


Linguagens: C e C++


Solução:

Código em C:

#include <stdio.h>

int main () {
    
    char alfabeto[27];
    int lampadasPiscadas, posicaoLampadaPiscada;
    
    
    while (scanf("%s ", alfabeto) != EOF) {
        
        scanf("%i ", &lampadasPiscadas);
        
        while (lampadasPiscadas--) {
           scanf("%i ", &posicaoLampadaPiscada);
           printf("%c", alfabeto[posicaoLampadaPiscada-1]);
        }
        
        printf("\n");
    }
    
    
    return 0;
}

Código em C++:

#include <iostream>

using namespace std;

int main () {
    
    string alfabeto;
    int lampadasPiscadas, posicaoLampadaPiscada;
    
    
    while (getline(cin, alfabeto)) {
        
        cin >> lampadasPiscadas;
        
        while (lampadasPiscadas--) {
           cin >> posicaoLampadaPiscada;
           cout << alfabeto[posicaoLampadaPiscada-1];
        }
        
        cout << endl;
        cin.ignore();
    }
    
    
    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