Plataforma: URI (BEECROWD)
Problema: 2727
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; }
#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