Cod sursa(job #1398216)

Utilizator zpaePopescu Andreea zpae Data 24 martie 2015 01:54:48
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <map>
#define N 1000005
using namespace std;
map<int,int> f;
int n,v[N],e,m=0;

int main()
{
    srand(time(NULL));
    ifstream in("elmaj.in");
    ofstream out("elmaj.out");
    in>>n;
    for(int i=0;i<n;++i)
        in>>v[i];
    for(int j=0;j<=110;++j)
    {
        e=v[rand()%n];
        f[e]++;
        if(f[e]>f[m])
            m=e;
    }
    e=0;
    for(int i=0;i<n;++i)
        if(m==v[i])
            e++;
    if(e>n/2)
        out<<m<<' '<<e<<"\n";
    else
        out<<"-1\n";
    return 0;
}

/*   90p

#include <fstream>
#include <map>
using namespace std;
ifstream in ("elmaj.in");
ofstream out ("elmaj.out");

int main()
{
    int n,i,m=0,x;
    map<int,int> f;
    f[0]=-1;
    in>>n;
    for(i=0;i<n;i++)
    {
        in>>x;
        f[x]++;
        if(f[x]>f[m])
            m=x;
    }
    if(f[m]>n/2)
        out<<m<<' '<<f[m]<<"\n";
    else
        out<<"-1\n";
    return 0;
}
*/