Cod sursa(job #1481883)

Utilizator Dragne.Andrei11Dragne Andrei Dragne.Andrei11 Data 5 septembrie 2015 14:30:10
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <algorithm>
#define nmax 1000001

using namespace std;

int v[nmax];
int main()
{
    freopen("elemaj.in", "r", stdin);
    freopen("elemaj.out", "w", stdout);
    int n;

    scanf("%d", &n);
    for(register int i=1;i<=n;i++)
        scanf("%d", &v[i]);
    sort(v+1, v+n+1);
    int c, nr, maxim=-1, nrf=-1;
    for(register int i=1;i<=n;i++)
    {
        c=0;
        nr=v[i];
        while(nr==v[i])
        {
            c++;
            i++;
        }
        if(c>maxim&&c>=n/2+1)
        {
            maxim=c;
            nrf=nr;
        }
        i--;
    }
    if(nrf==-1)
        printf("-1\n");
    else
        printf("%d %d\n", nrf, maxim);

    return 0;
}