Pesquisar este blog

Livros Recomendados

quinta-feira, 18 de março de 2021

URI (BEECROWD) - 2727 - Código Secreto - Iniciante - C e C++

Plataforma: URI (BEECROWD)

Problema2727

Enunciado:

Joana gosta de brincar de fingir ser uma agente secreta com suas amigas Bruna, Jaqueline e Laura. Joana e Bruna criaram um código secreto para se comunicar sem que suas inimigas descubram seus planos.
O código secreto funciona da seguinte forma:

  • A letra 'a' é representada por um único ponto '.'
  • A letra 'b' é representada por dois pontos '..'
  • A letra 'c' é representada por três pontos '...'
  • As demais letras seguem a lógica anterior, porém cada conjunto de pontos está separado por um espaço e sempre com um conjunto a mais de pontos, como no exemplo abaixo:

. → a
.. → b

... → c

. . → d

.. .. → e
... ... → f

. . . → g
.. .. .. → h
... ... ... → i

O seu objetivo é criar um programa que decifre as mensagens secretas e ajudar Jaqueline e Laura descobrirem o que Joana e Bruna estão planejando.


Linguagens: C e C++


Solução:

Código em C:

#include <stdio.h>
#include <string.h>

int main() {
    
    int letraInicial, n, contaEspacos, i, j;
    char palavra[64];
    
    while (scanf("%d ", &n) != EOF) {
        
        while (n--) {
            
            scanf("%[^\n]%*c", palavra);
            contaEspacos = 0;
            letraInicial = 'a';
            
            for (i = 0; i < strlen(palavra); i++)
                if (palavra[i] == ' ')
                    contaEspacos++;
            
            letraInicial += (contaEspacos * 3);
            
            for (j = 1; j < 3; j++)
                if (palavra[j] == ' ')
                    break;
                    
            if (strlen(palavra) > 3)
                letraInicial += j - 1;
            else if (strlen(palavra) == 2)
                letraInicial++;
            else if (strlen(palavra) == 3 && j == 3)
                letraInicial += 2;
                
            printf("%c\n", letraInicial);
        }
    }
    
    return 0;
}

Código em C++:

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    
    int letraInicial, n, contaEspacos, i, j;
    string palavra;
    
    while (cin >> n) {
        
        cin.ignore();
        while (n--) {
            
            getline(cin, palavra);
            contaEspacos = 0;
            letraInicial = 'a';
            
            for (i = 0; i < palavra.size(); i++)
                if (palavra[i] == ' ')
                    contaEspacos++;
            
            letraInicial += (contaEspacos * 3);
            
            for (j = 1; j < 3; j++)
                if (palavra[j] == ' ')
                    break;
                    
            if (palavra.size() > 3)
                letraInicial += j - 1;
            else if (palavra.size() == 2)
                letraInicial++;
            else if (palavra.size() == 3 && j == 3)
                letraInicial += 2;
                
            cout << (char) letraInicial << 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