Cod sursa(job #2103917)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 10 ianuarie 2018 22:03:53
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("elmaj.in");
ofstream cout("elmaj.out");
int give_hash(int val)
{
    return val%(1<<10);
}
struct data
{
    int val,ap;
};
int n,a;
vector<data>v[(1<<10)+5];
void update(int poz,int val)
{
    for(int i=0;i<v[poz].size();i++)
        if(v[poz][i].val==val)
        {
            v[poz][i].ap++;
            return;
        }
    v[poz].push_back({val,1});
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        update(give_hash(a),a);
    }
    for(unsigned int i=0;i<(1<<10);i++)
        for(unsigned int j=0;j<v[i].size();j++)
            if(v[i][j].ap>=n/2+1)
            {
                cout<<v[i][j].val<<" "<<v[i][j].ap;
                return 0;
            }
    cout<<-1;
    return 0;
}
/**

**/