Cod sursa(job #2873161)

Utilizator ilincap2008Ilinca Popescu ilincap2008 Data 18 martie 2022 19:18:48
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>

using namespace std;
ifstream cin("elmaj.in");
ofstream cout("elmaj.out");
int n,a[1000001],i,nr1,x;
int elmaj(int n,int a[])
{
    int cand=-1,nr=0,nr1=0,i;
    for(i=0; i<n; i++)
    {
        if(nr==0)
        {
            cand=a[i];
            nr=1;
        }
        else if(a[i]==cand)
        {
            nr++;
        }
        else
            nr--;
    }
    for( i=0; i<=n; i++)
    {
        if(a[i]==cand)
            nr1++;
    }
    if(nr1>n/2)
    {
        return cand;
    }
    else
    {
        return -1;
    }
}
int main()
{
    cin >>n;
    for(i=0; i<n; i++)
    {
        cin >>a[i];
    }
    if(elmaj(n,a)==-1)
    {
        cout <<-1;
    }
    else
    {
        x=elmaj(n,a);
        cout <<x<<' ';
        for(i=0; i<n; i++)
        {
            if(a[i]==x)
                nr1++;
        }
        cout <<nr1;
    }
    return 0;
}