Pesquisar este blog

Livros Recomendados

quinta-feira, 4 de março de 2021

URI (BEECROWD) - 2152 - Pepe, Já Tirei a Vela! - Iniciante - C e C++

Pepe, Já Tirei a Vela! Este é o exercício resolvido aqui. Um exercício bem simples que tem mais a ver com formato de saída do que com raciocínio lógico em si. Confira!

Plataforma: URI (BEECROWD)

Problema2152

Enunciado:

Um dia, o grande herói Chapolout foi ajudar um cientista, que criou muitas invenções. Uma destas invenções é um sistema que abre a porta secreta do laboratório. O sistema consiste em retirar uma vela do candelabro do lado da porta, que a mesma se abre, e, ao colocar a vela de volta ao candelabro, a porta se fecha. Porém, Chapolout descobriu que a vela era só uma desculpa. Na verdade, o assistente do cientista, chamado Pepe, é que abria a porta do laboratório, por dentro. Um tempo depois, o sistema foi modificado, para funcionar igualmente ao projeto inicial. Colocaram um sensor de pressão embaixo da vela do candelabro, de modo que a retirada da vela ativa o sistema. Este sistema emite um relatório de log por cada vez que a porta abriu ou fechou, mas o log está bem confuso. A cada registro, três números inteiros são cadastrados, sendo a hora e o minuto que o evento ocorreu e um valor que representa se a porta abriu ou fechou naquele momento. Pepe pede a sua ajuda para converter os dados do log em dados mais legíveis para ele.

Escreva um programa que, dado um registro de log, este seja convertido em textos mais legíveis.

Linguagens: C e C++


Solução:

Basta ler os três valores e verificar o valor de o para saber se abriu ou fechou. É necessário formatar com zeros à frente, em C fiz isso com %02d e em C++ fiz isso com setw(2) << setfill('0').

Código em C:

#include <stdio.h>

int main() {
    int n, h, m, o;
    scanf("%i", &n);
    
    while (n--) {
        scanf("%i %i %i", &h, &m, &o);
        
        printf("%02d:%02d - A porta ", h, m);
        
        if (o)
            printf("abriu!\n");
        else
            printf("fechou!\n");
    }

    return 0;
}

Código em C++:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    int n, h, m, o;
    cin >> n;
    
    while (n--) {
        cin >> h >> m >> o;
        
        cout << setw(2) << setfill('0') << h << ":" << setw(2) << setfill('0') << m << " - A porta ";
        
        if (o)
            cout << "abriu!" << endl;
        else
            cout << "fechou!" << 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