Cod sursa(job #1291783)

Utilizator RaduToporanRadu Toporan RaduToporan Data 13 decembrie 2014 11:40:22
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <algorithm>

using namespace std;
int n,i,nrap,nrmaxap;
long long a[1000000],numarul,majoritarul;

int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    for (i=1; i<=n; i++) scanf("%lld",&a[i]);
    sort(a+1,a+n+1);

    nrap=1;
    numarul=a[1];
    majoritarul=a[1];
    nrmaxap=1;
    for (i=2; i<=n; i++)
    {
        if (a[i]!=a[i-1]) {nrap=1; numarul=a[i];}
        else nrap++;
        if (nrmaxap<nrap) {majoritarul=numarul; nrmaxap=nrap;}
        if (nrmaxap>(n/2)&&(numarul!=nrmaxap)) break;
    }

    printf("%lld %d",majoritarul,nrmaxap);
    return 0;
}