Pesquisar este blog

Livros Recomendados

domingo, 28 de fevereiro de 2021

URI (BEECROWD) - 1961 - Pula Sapo - Iniciante - C e C++

O problema "Pula Sapo" é de nível iniciante e utiliza estrutura condicional, estrutura de repetição e cálculo do valor absoluto. Veja na sequência desse post a minha resposta para este problema!

Plataforma: URI (BEECROWD)

Problema1961

Enunciado:

Em cada fase do jogo do Pula Sapo você deve conduzir seu anfíbio através de uma sequência de canos de alturas diferentes até chegar a salvo no cano mais à direita. Entretanto, o sapo só consegue sobreviver se a diferença de altura entre canos consecutivos for de, no máximo, a altura do pulo do sapo. Caso a altura do cano seguinte seja muito alta, o sapo bate no cano e cai. Se a altura do cano seguinte for muito baixa, o sapo não aguenta a queda. O sapo sempre começa em cima do cano mais à esquerda.

Neste jogo, a distância entre os canos é irrelevante, ou seja, o sapo sempre consegue alcançar o próximo cano com um pulo.

Você deve escrever um programa que, dadas as alturas dos canos e a altura do pulo do sapo, mostra se a fase do jogo pode ser vencida ou não.

Linguagens: C e C++


Solução: 

Após ler os valores, testa se o módulo de valor menos o valor anterior é maior que p, assim já interrompe o laço se isso for verdade. É necessário reatribuir o valor da variável anterior, para sempre saber quem foi o valor lido anteriormente e assim refazer o teste. 

Código em C:

#include <stdio.h>
#include <math.h>

int main() {
    int p, n, anterior, valor, resposta = 0;
    
    scanf("%i %i", &p, &n);
    
    n--;
    scanf("%i", &anterior);
    
    while (n--) {
        scanf("%i", &valor);
        
        if (abs(valor - anterior) > p) {
            resposta = 1;
            break;
        }
        
        anterior = valor;
    }
    
    if (resposta)
        printf("GAME OVER\n");
    
    else
        printf("YOU WIN\n");

    return 0;
}

Código em C++:

Segue o mesmo raciocínio do código em C.

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    int p, n, anterior, valor, resposta = 0;
    
    cin >> p >> n;
    
    n--;
    cin >> anterior;
    
    while (n--) {
        cin >> valor;
        
        if (abs(valor - anterior) > p) {
            resposta = 1;
            break;
        }
        
        anterior = valor;
    }
    
    if (resposta)
        cout << "GAME OVER" << endl;
    
    else
        cout << "YOU WIN" << 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