Pesquisar este blog

Livros Recomendados

quarta-feira, 8 de abril de 2020

URI (BEECROWD) - 1329 - Cara ou Coroa - Ad-Hoc - C e C++

Novo problema ad-hoc solucionado! Esse é o problema "Cara ou Coroa" e foi bastante simples de se resolver. Veja abaixo! :)

Plataforma: URI (BEECROWD)

Problema1329

Enunciado:
João e Maria são amigos desde que se conheceram na creche. Desde então, eles compartilham uma rotina de brincadeiras: todas as vezes que eles se encontram, eles jogam Cara ou Coroa com uma moeda, e quem ganhar tem o privilégio de decidir quais brincadeiras eles irão jogar durante o dia. Maria sempre escolhe cara, e João sempre escolhe coroa. Hoje em dia eles estão na faculdade, mas continuam sendo bons amigos. Sempre que se encontram, eles ainda jogam Cara ou Coroa, e o vencedor decide que filme assistir, ou em que restaurante jantar, e assim por diante. Ontem Maria contou a João que ela guarda um registro de todas as vezes que eles jogaram, desde os tempos da creche. João ficou espantado. Porém João está estudando Ciência da Computação e decidiu que essa era uma boa oportunidade para mostrar a Maria suas habilidades em programação, escrevendo um programa que mostrasse o número de vezes que cada um deles venceu ao longo de todos esses anos.

(Desafio da Maratona de Programação da SBC de 2004)

Linguagens: C e C++

Solução:

Basta verificar quando o resultado é zero (Mary venceu) e contar a quantidade de vezes que isso acontece. Sabendo o valor de vezes que Mary venceu e o valor de n, sabemos também que John venceu n-mary vezes. Essa estratégia foi adotada nos dois códigos abaixo.

Código em C:

#include <stdio.h>

int main() {
    int n, i, resultado, mary;
    
    while (1) {
        scanf("%i", &n);
        
        if (n == 0) break;
        
        i = 0;
        mary = 0;
        
        while (i++ < n) {
            scanf("%i", &resultado);
            
            if (resultado == 0) mary++;
        }
        
        printf("Mary won %i times and John won %i times\n", mary, n - mary);
    }
    return 0;
}

Código em C++:

:

#include <iostream>

using namespace std;

int main() {
    int n, i, resultado, mary;
    
    while (1) {
        cin >> n;
        
        if (n == 0) break;
        
        i = 0;
        mary = 0;
        
        while (i < n) {
            cin >> resultado;
            
            if (resultado == 0)
                mary++;
                
            i++;
        }
        
        cout << "Mary won " << mary << " times and John won " << n - mary << " times" << 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