Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1858. Mostrar todas as postagens
Mostrando postagens com marcador 1858. Mostrar todas as postagens

quarta-feira, 24 de fevereiro de 2021

URI (BEECROWD) - 1858 - A Resposta de Theon - Iniciante - C

Problema "A Resposta de Theon" resolvido e postado! Também tenho duas soluções dele em C++. Aqui nesse post eu trago a solução em C.

Plataforma: URI (BEECROWD)

Problema1858

Enunciado:

Ramsay: "(...) você vence se conseguir adivinhar quem eu sou e por que estou torturando você."

Theon deve pensar rápido e adivinhar quem é seu algoz! Entretanto, Ramsay já decidiu o que ele irá fazer depois que Theon der sua resposta.

Theon pode dizer que seu algoz é alguma dentre N pessoas. Considere que as pessoas são numeradas de 1 a N. Se Theon responder que seu algoz é a pessoa i, Ramsay irá atingi-lo Ti vezes.

Sua tarefa é ajudar Theon a determinar qual deve ser sua resposta de forma a minimizar o número de vezes que ele será atingido.

Linguagem: C

Solução:

Já atribuí o valor 21 a menor, pois todo valor será menor que isso e assim posso fazer a iteração e garantir que o menor valor estará nessa variável. Além disso, é necessário pegar a posição desse valor, e a variável posição é iniciada em 1 e é incrementada no laço de repetição. Sempre testo, dentro do laço de repetição e enquanto estiver lendo os valores, se o valor lido é menor que o valor da variável menor, aí faz a troca da posição e do menor, se de fato for menor. No fim basta imprimir a posição.

#include <stdio.h>

int main() {
    
    int n, valor, posicao, menor, contador;
    
    scanf("%i", &n);
    
    menor = 21;
    posicao = 1;
    contador = 1;
    
    while(contador <= n) {
        
        scanf("%i", &valor);
        
        if (valor < menor) {
            posicao = contador;
            menor = valor;
        }
            
        contador++;
        
    }
    
    printf("%i\n", posicao);

    return 0;
}

URI (BEECROWD) - 1858 - A Resposta de Theon - Iniciante - C++ - Solução Alternativa

Trago aqui para vocês uma solução alternativa para o problema "A resposta de theon", em C++.

Plataforma: URI (BEECROWD)

Problema1858

Enunciado:

Ramsay: "(...) você vence se conseguir adivinhar quem eu sou e por que estou torturando você."

Theon deve pensar rápido e adivinhar quem é seu algoz! Entretanto, Ramsay já decidiu o que ele irá fazer depois que Theon der sua resposta.

Theon pode dizer que seu algoz é alguma dentre N pessoas. Considere que as pessoas são numeradas de 1 a N. Se Theon responder que seu algoz é a pessoa i, Ramsay irá atingi-lo Ti vezes.

Sua tarefa é ajudar Theon a determinar qual deve ser sua resposta de forma a minimizar o número de vezes que ele será atingido.

Linguagem: C++

Solução:

Nesta solução eu utilizei um while para ler os valores e testar se ele é o menor; se for, troca o valor da variável menor e da variável posição, pois é necessário imprimir a posição do menor valor.

#include <iostream>

using namespace std;

int main() {
    
    int n, valor, posicao, menor, contador;
    
    cin >> n;
    
    menor = 21;
    posicao = 1;
    contador = 1;
    
    while(contador <= n) {
        
        cin >> valor;
        
        if (valor < menor) {
            posicao = contador;
            menor = valor;
        }
            
        contador++;
        
    }
    
    cout << posicao << endl;

    return 0;
}

terça-feira, 1 de dezembro de 2020

URI (BEECROWD) - 1858 - A Resposta de Theon - Iniciante - C++

Mais uma solução para o problema A Resposta de Theon! Confira na sequência!

Plataforma: URI (BEECROWD)

Problema1858

Enunciado:

Ramsay: "(...) você vence se conseguir adivinhar quem eu sou e por que estou torturando você."

Theon deve pensar rápido e adivinhar quem é seu algoz! Entretanto, Ramsay já decidiu o que ele irá fazer depois que Theon der sua resposta.

Theon pode dizer que seu algoz é alguma dentre N pessoas. Considere que as pessoas são numeradas de 1 a N. Se Theon responder que seu algoz é a pessoa i, Ramsay irá atingi-lo Ti vezes.

Sua tarefa é ajudar Theon a determinar qual deve ser sua resposta de forma a minimizar o número de vezes que ele será atingido.

Linguagem: C++

Solução:

Basicamente utilizo um for para ler os números e trocar valor e posição (variável lower) caso sejam menores que o valor menor (variável min). O valor menor foi inicializado com 20, que é o maior valor possível.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main() {
	int n, num;
	int lower = 1;
	int min = 20;
 	cin >> n;
 	for(int i =1;i<=n;i++){
 		cin >> num;
 		if(num<min){
 			min = num;
 			lower = i;
 		}
 	}
 	cout << lower<<endl;
    return 0;
}

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