Cod sursa(job #1108348)

Utilizator RathebaSerbanescu Andrei Victor Ratheba Data 15 februarie 2014 16:45:19
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define MAX 1000005

int v[MAX],n,fr[MAX],i,maxim=0,sol,nr=0;
bool comp(int a, int b)
{
    return a<b;
}

int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; i++)
        scanf("%d",&v[i]);
    sort(v+1,v+n+1,comp);
    for(i=1; i<=n; i++)
    {
        if(v[i] != v[i-1])
            nr++;
        fr[nr]++;
    }
    for(i=1; i<=n; i++)
        if(fr[maxim] < fr[i])
            maxim=i;
    nr=0;
    for(i=1; i<=n; i++)
    {
        if(v[i] != v[i-1])
            nr++;
        if(nr == maxim){ sol=v[i]; break;}
    }
    printf("%d %d",sol,fr[maxim]);
    return 0;
}