1
resposta

eu estava tentando resolver umas questões da olimpíada brasileira de informática e fiquei travado nessa questão

O professor Arquimedes precisa da sua ajuda para descobrir qual é a nota mais frequente entre as notas que os alunos dele tiraram na última prova. A turma tem N alunos e seu programa deve imprimir a nota que aparece mais vezes na lista de N notas. Se houver mais de uma nota mais frequente, você deve imprimir a maior delas! Por exemplo, se a turma tiver N=10 alunos e as notas forem [20,25,85,40,25,90,25,40,55,40], as notas mais frequentes são 25 e 40, ocorrendo três vezes cada. Seu programa, então, deve imprimir 40.

Entrada A entrada consiste de duas linhas. A primeira linha contém um número inteiro N, o número de alunos na turma. A segunda linha contém N inteiros, que é a lista de notas dos alunos. Saída Seu programa deve imprimir apenas uma linha contendo apenas um número, a nota mais frequente da lista. Restrições 1 ≤ N ≤ 200 O valor de todas as notas é um inteiro entre 0 e 100, inclusive Exemplos Entrada 10 20 25 85 40 25 90 25 40 55 40 Saída 40

Entrada 12 45 0 33 70 12 55 70 70 90 55 70 100 Saída 70

(queria responder em c++)

1 resposta

Olá, Diogo!

Para resolver esse problema, você pode utilizar um mapa (map) para contar a frequência de cada nota. Em seguida, basta percorrer o mapa e encontrar a nota com a maior frequência. Aqui está um exemplo de como você pode implementar isso em C++:

#include <iostream>
#include <map>

int main() {
    int N;
    std::cin >> N;

    std::map<int, int> frequencia;

    for (int i = 0; i < N; i++) {
        int nota;
        std::cin >> nota;
        frequencia[nota]++;
    }

    int notaMaisFrequente = 0;
    int maiorFrequencia = 0;

    for (auto it = frequencia.begin(); it != frequencia.end(); it++) {
        if (it->second >= maiorFrequencia) {
            notaMaisFrequente = it->first;
            maiorFrequencia = it->second;
        }
    }

    std::cout << notaMaisFrequente << std::endl;

    return 0;
}

Espero que isso te ajude a resolver a questão da Olimpíada Brasileira de Informática! Bons estudos!