Aca tengo un code que hice que muestra los numeros que mas se repiten.
Fijate si lo podes adaptar.
#include <utility>
#include <vector>
#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream entrada;
ofstream salida;
unsigned int nLineas, nIterador, i, j;
bool ordenar(const pair<string, int>& i, const pair<string, int>& j);
int main()
{
entrada.open("nombres.in");
entrada >> nLineas;
entrada >> nIterador;
vector < pair <string, int> > vNombres (nLineas);
vector <string> vPrincipal (nLineas);
for(i=0; i<nLineas; i++){
entrada >> vPrincipal[i];
vNombres[i].first = vPrincipal[i];
}
for(i=0; i<vPrincipal.size(); i++)
for(j=0; j<vPrincipal.size(); j++)
if(vNombres[i].first == vPrincipal[j])
vNombres[i].second += 1;
sort(vNombres.begin(), vNombres.end(), ordenar);
salida.open("nombres.out");
j = 0;
for(i=0; i<nIterador; i++){
salida << vNombres[j].first <<" ";
salida << vNombres[j].second;
salida << endl;
j += vNombres[j].second;
}
entrada.close();
salida.close();
return 0;
}
bool ordenar(const pair<string, int>& i, const pair<string, int>& j){
return j.second < i.second ? true : false;
}