Pesquisar este blog

Livros Recomendados

sábado, 27 de março de 2021

URI (BEECROWD) - 3224 - Aaah! - Iniciante - C e C++

Fala pessoal, blz? Esse exercício foi um dos mais novos postados lá na plataforma. Achei ele bem simples, é ideal pra quem está começando a aprender algoritmos em alguma linguagem de programação. O que acharam da solução apresentada?

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)

Problema3224

Enunciado:

Jon Marius gritou muito no recente show de Justin Bieber, e agora precisa ir ao médico por causa de sua dor de garganta. As instruções do médico são para dizer "aaah". Infelizmente, os médicos às vezes precisam que Jon Marius diga “aaah” por um tempo, o que Jon Marius nunca foi bom. Cada médico requer um certo nível de “aah” - alguns requerem “aaaaaah”, enquanto outros podem realmente diagnosticar sua garganta com apenas um “h”. (Eles costumam diagnosticar erroneamente, mas isso está além do escopo deste problema.) Como Jon Marius não quer ir ao médico e perder tempo, ele quer comparar quanto tempo consegue segurar o “aaah” com o requisitos do médico. (Afinal, quem quer ser todo tipo “aaah” quando o médico quer que você diga “aaaaaah”?)

A cada dia Jon Marius liga para um médico diferente e pergunta quanto tempo seu “aaah” deve durar. Descubra se Jon Marius perderia seu tempo indo ao médico determinado.

Linguagens: C e C++

Solução em C:

Como é garantido que o texto será formado somente pelas letras a (que pode se repetir) e h, basta verificar se o tamanho das cadeias de caracteres é igual, o que foi feito utilizando a função strlen, da biblioteca string.h. Com base nisso a saída adequada é fornecida, ou seja, "go" se o tamanho da primeira string for maior ou igual ao tamanho da segunda e "no" caso contrário. Nesta solução utilizou-se o operador ternário diretamente no printf, mas você pode resolver implementando com uma estrutura condicional explicitamente.

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

#define TAM 1001

int main() {
    
    char s1[TAM], s2[TAM];
    scanf("%s %s", s1, s2);
    printf("%s\n", strlen(s1) >= strlen(s2)? "go" : "no");

    return 0;
} 

Solução em C++:

Como é garantido que o texto será formado somente pelas letras a (que pode se repetir) e h, basta verificar se o tamanho das strings é igual. A função size obtém o tamanho das strings.  Com base nisso a saída adequada é fornecida. Nesta solução utilizou-se o operador ternário, mas você pode resolver implementando com uma estrutura condicional explicitamente. Não esqueça da quebra de linha (endl;) no comando cout.

#include <iostream>

using namespace std;

int main() {
    
    string s1, s2;
    cin >> s1 >> s2;
    cout << (s1.size() >= s2.size()? "go" : "no") << endl;

    return 0;
}

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