Pesquisar este blog

Livros Recomendados

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

quarta-feira, 13 de janeiro de 2021

URI - 1171 - Frequência de Números - Ad-hoc - C

Plataforma: URI
Problema1171

Enunciado:
Neste problema sua tarefa será ler vários números e em seguida dizer quantas vezes cada número aparece na entrada de dados, ou seja, deve-se escrever cada um dos valores distintos que aparecem na entrada por ordem crescente de valor.

Linguagem: C


Solução:

#include <stdio.h>

int main() {
    
    int n, indice, indice2, indice3, indice4, contador, eleito, flag;
    scanf("%i", &n);
    
    int numeros[n];
    
    indice = 0;
    while (indice < n)
        scanf("%i", &numeros[indice++]);
    
    for (indice2 = 1 ; indice2 <= n-1; indice2++) {
        eleito = numeros[indice2];

        for (indice3 = indice2-1; indice3 >= 0; indice3--) {
            if (numeros[indice3] > eleito) {
                numeros[indice3 + 1] = numeros[indice3];
                flag = 1;
            }
            else break;
        }
        
        if (flag)
            numeros[indice3 + 1] = eleito;
    }
    
    indice = 0;
    while (indice < n) {
        
        contador = 1;
        indice4 = 0;
        
        while (indice4 < n) {
            
            if (numeros[indice] == numeros[indice4] && indice != indice4)
                contador++;

            indice4++;
        }
        
        printf("%i aparece %i vez(es)\n", numeros[indice], contador);
        indice += contador;
    }
    
    return 0;
}

URI - 1171 - Frequência de Números - Ad-hoc - C++ - Solução Alternativa

Plataforma: URI
Problema1171

Enunciado:
Neste problema sua tarefa será ler vários números e em seguida dizer quantas vezes cada número aparece na entrada de dados, ou seja, deve-se escrever cada um dos valores distintos que aparecem na entrada por ordem crescente de valor.

Linguagem: C++


Solução:

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    
    int n, indice, indice2, contador;
    cin >> n;
    
    int numeros[n];
    
    indice = 0;
    while (indice < n) {
        cin >> numeros[indice];
        indice++;
    }
    
    sort(numeros, numeros + n);
    
    indice = 0;
    while (indice < n) {
        
        contador = 1;
        indice2 = 0;
        
        while (indice2 < n) {
            if (numeros[indice] == numeros[indice2] && indice != indice2)
                contador++;

            indice2++;
        }
        cout << numeros[indice] << " aparece " << contador << " vez(es)" << endl;
        indice += contador;
    }
    
    return 0;
}

domingo, 11 de outubro de 2020

URI - 1171 - Frequência de Números - Ad-hoc - C++

Plataforma: URI
Problema1171

Enunciado:
Neste problema sua tarefa será ler vários números e em seguida dizer quantas vezes cada número aparece na entrada de dados, ou seja, deve-se escrever cada um dos valores distintos que aparecem na entrada por ordem crescente de valor.

Linguagem: C++

Solução:
É criado uma hash (unordered_map) pra fazer o mapeamento dos valores. Sempre que um valor for lido, então é incrementado 1 naquela posição. Ao final, os números são listados na ordem em que aparecem por causa da estrutura do unordered_map.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>

using namespace std; 

int main() 
{ 
 unordered_map<int,int> mymap;
 vector<int> used_elements;
 int n, value, quant;
 cin >> n;
 while(n--){
  cin >> value;
  quant = mymap[value];
  mymap[value] = quant + 1;
  if(quant == 0){
   used_elements.push_back(value);
  }
 }
 sort(used_elements.begin(),used_elements.end());
 for(int i = 0; i<used_elements.size();i++){
  cout << used_elements.at(i) << " aparece ";
  cout << mymap[used_elements.at(i)] << " vez(es)" << 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