Pesquisar este blog

Livros Recomendados

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; 
} 

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